- 1 名前:デフォルトの名無しさん [2007/08/01(水) 06:23:28 ]
- Microsoft Foundation Classライブラリ専用スレです。
- 131 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 10:16:49 ]
- CObjectから派生させていないデータクラスでも
Serializeでないファイル読み書きに CArchiveを使ってしまってよいものでしょうか? virtual void LoadData(CArchive& ar); virtual void SaveData(CArchive& ar) const; こんな感じのメンバ関数を用意しようかと思っているんですけど。 それとも、CFile*を引数にしてしまうべきですか?
- 132 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 18:42:47 ]
- >>131
シリアル化にIMPLEMENT_SERIALを使わないなら、 CObject派生の意味は殆ど無いし、良いんじゃないかな。 結局は単純なバイト列の読み書きなのだし。
- 133 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 09:47:20 ]
- >>132
ありがとうございます。 自作データクラス群は大元の親クラスが純粋仮想クラスで、 また、自分自身がCObjectから派生することに慣れていないため、 この形のままCArchiveだけ使えないかなと思いました。 このデータクラス群の一つが内部でCArrayのメンバを持っているのですが、 これを保存するためにCArray::Serializeを呼ぼうとすると、 SaveDataはconstにはできないですね…。 まぁconstを取り外してしまえば、とりあえず動きそうですが、 SaveDataの中でMFCクラスメンバのSerializeをコールというのが かなりまずい構造なのかなぁ。
- 134 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 10:05:42 ]
- >>133
MFC - 概念 - シリアル化 - シリアル化 : オブジェクトのシリアル化 - アーカイブを通じた CObject の格納と読み込み
- 135 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:03:21 ]
- 質問です
CDialogの派生クラスを作成して、そのダイアログに CButtonやCStaticなどのコントロールを貼り付けています そのコントロールの上に色々描画したいんですが やり方が解りません。どうすればいいでしょうか? OnPaintを作ってその中で CPaintDC dc(this); dc.MoveTo(*,*); dc.LintTo(**,**); としてみましたが、コントロールの上でなく背後に描画されてしまいます
- 136 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 22:57:38 ]
- >>135
ダイアログを派生させるまで分かって、 コントロールを派生させることに思いつかなかったってことでいいの?
- 137 名前:デフォルトの名無しさん mailto:sage [2007/09/13(木) 23:53:45 ]
- >>136
CStaticを派生させてそのOnPaintを処理したら キャプションが表示されなくなりました。 やりたいことはCStaticのコントロールがあれば、そのコントロールに 縁取りして線を描いたり、コントロールの上にビットマップを表示したり したいんです。その時CStaticの文字を表示する機能はそのまま活かしたい。 イメージとしてはダイアログを表示してそれをビットマップで保存し、 その上に落書きする、みたいな。
- 138 名前:デフォルトの名無しさん [2007/09/14(金) 12:06:25 ]
- DLLの関数をコールした時に、よく解らない現象が起きます。
char Buff[1000]; int nRet = ((PT_FUNC)*m_fpFunc)( Buff, sizeof(Buff) ); 1行目でBuff領域を確保した後、 2行目のDLLをコールするとBuffのアドレス値が変化してしまいます。 しかもthis変数の値も変化してしまい、エリアの破壊が起きている感じです。 DLL側(自作)では無処理のreturn としています。 2行目のBuff宣言を static char Buff[1000] とすると正常に動作します。 DLL関数には 静的なバッファしか渡せないという事なんでしょうか? 教えて下さい
- 139 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 12:26:52 ]
- >>138
m_fpFuncの中身をさらせ
- 140 名前:138 mailto:sage [2007/09/14(金) 12:38:29 ]
- >>139
FARPROC m_fpFunc; です。ここが違うのでしょうか?
- 141 名前:デフォルトの名無しさん mailto:sage [2007/09/14(金) 12:53:40 ]
- >>140
FARPROCやめて実体と同じ型で宣言してみ 引数と戻値が呼び出しと実体で違っててスタックを壊してるだけだと思うぞ
- 142 名前:138 mailto:sage [2007/09/14(金) 13:30:42 ]
- >>141
指摘の通りでした。 ありがとうございました。
- 143 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 17:31:24 ]
- >>137
> やりたいことはCStaticのコントロールがあれば、そのコントロールに > 縁取りして線を描いたり、コントロールの上にビットマップを表示したり > したいんです。その時CStaticの文字を表示する機能はそのまま活かしたい。 CStaticのOnEranseBkGroundって作れるっけ? 作れるんなら、そこで処理してみたら? 作れないなら、無理っぽい。
- 144 名前:143 mailto:sage [2007/09/15(土) 17:34:21 ]
- ×OnEranseBkGround
○OnEraseBkgnd
- 145 名前:デフォルトの名無しさん mailto:sage [2007/09/15(土) 19:40:30 ]
- >>143
結局CStaticから派生してOnPaintの中で DrawTextとかFrameRectとかを使用するようにしました 今OnEraseBkgndでFrameRectを使ってみましたが、 これでも出来そうな気がします しかし、テキストの描画時にFrameRectで描いた枠が消されて しまうようで他にも幾つかいじらなければいけないっぽいですね 一応解決です、皆さんアリガト
- 146 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 14:26:04 ]
-
CHtmlView::Navigate2のエラー検知を行いたいのですが、 どうすれば良いのでしょうか? どなたか教えてください。
- 147 名前:デフォルトの名無しさん [2007/09/16(日) 14:49:26 ]
- 自作DLLでダイアログを表示しようとしています。
m_pcDebugDlg->Create(IDD_TEST); を実行すると、 ERROR: Cannot find dialog template with IDD 0x36B1. というエラーが発生します。 何かの設定が足りないのでしょうか? よろしくお願いします。
- 148 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 15:25:03 ]
- そこに書いてある通りじゃないの?
- 149 名前:147 mailto:sage [2007/09/16(日) 17:25:10 ]
- >>148
IDD_TEST は resource.h に定義されていました。 プロジェクト/プロパティ/MFCの使用を「共有DLLでMFCを使用する」から 「スタティックライブラリでMFCを使用」に変更したら、ダイアログが表示される様になりました。 ただし、客先からは「共有MFC」でと指示があります。 何が悪いのでしょうか?
- 150 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 17:33:08 ]
- リソースをビルドしなおしても同じ?
- 151 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 17:44:40 ]
- >IDD_TEST は resource.h に定義されていました。
.rc ではどうなってますか まあ>>150でおkだと思うけど
- 152 名前:147 mailto:sage [2007/09/16(日) 18:02:30 ]
- ..rc には
IDD_TEST DIALOGEX 0, 0, 250, 170 という記述がありました。 リソースをビルドという方法がよくわからなかったのですが、 ソリューションのリビルド . rcファイルのコンパイル の両方とも、現象は変わりませんでした。 リソースのビルドって、他のやり方でしょうか?
- 153 名前:デフォルトの名無しさん mailto:sage [2007/09/16(日) 18:10:28 ]
- つ AFX_MANAGE_STATE
- 154 名前:147 mailto:sage [2007/09/16(日) 18:43:56 ]
- >>153
DLL関数の先頭に AFX_MANAGE_STATE(AfxGetStaticModuleState( )); を追加したらうまくいきました。 どうもありがとうございました。
- 155 名前:デフォルトの名無しさん [2007/09/19(水) 17:46:56 ]
- ダイアログの上でエンターキーを押すと、
プログラムが正常終了してしまいます。 プログラムを終了させたくないのですが、どうすればいいのか教えて下さい。 よろしくお願いします
- 156 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 18:47:04 ]
- >>155
つ[OnOK()]
- 157 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 19:23:59 ]
- いや俺は PreTranslateMessageで処理するほうが好きだ
- 158 名前:155 mailto:sage [2007/09/19(水) 20:06:07 ]
- >>156,157
ありがとうございました OnOK()で対応しました
- 159 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 20:57:01 ]
- OnOK()で対応するというのは間違っていると思う。
OnOK()の意味をちゃんと考えるべき。 そして「Enterキーを押したときにダイアログを終了させない」という仕様の意味をちゃんと考えるべき。 するとどうやって実現するのが正しい形かわかるでしょ。 面倒でも、何事も正しい形ってものを常に意識して作っておかないと後悔するよ。大袈裟だがw
- 160 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 21:19:33 ]
- MFCが勝手に定義してる機能を殺すだけだろ
元のダイアログにはそんな機能ない
- 161 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 22:50:34 ]
- リターンキーが押される→OnOK()が呼び出される→OnOK()の処理をキャンセルする
よりは リターンキーが押される→OnOK()を呼ばないようにする の方がスマート。 よってPreTranslateMessageを推奨するよ。 他の用途にも使えるし覚えといて損はない。
- 162 名前:デフォルトの名無しさん mailto:sage [2007/09/19(水) 23:14:48 ]
- そこまで気にするんなら
メッセージ発生するごとにPreTranslateMessage呼ばれるのも気にした方がいいよ OnOKよりはるかにオーバヘッドになってるはず
- 163 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 12:46:43 ]
- Okボタンが在る場合、
Okボタンがデフォルトボタン形状なのはUI的にまずい。
- 164 名前:デフォルトの名無しさん [2007/09/20(木) 17:56:11 ]
- フォトショップ等、メインウィンドウの他に、
レイヤー情報などを表示するウィンドウがあるんですが、 それをCDialogで作ろうと思っているんです m_dlg.Create( CTestDialog::IDD , this ); m_dlg.ShowWindow( SW_SHOW ); で、一応表示されるんですが、 ダイアログにフォーカスが写ると、 メインウィンドウのタイトルバーが灰色になるのです。 正しい、子ウィンドウの作り方ってありますか?
- 165 名前:デフォルトの名無しさん mailto:sage [2007/09/20(木) 19:38:14 ]
- 正しいかどうか知らんけどツールウィンドウ
- 166 名前:デフォルトの名無しさん mailto:sage [2007/09/21(金) 12:26:58 ]
- Enterキーは、OKボタンを押すのではなく、デフォルトボタンを押す操作です。
PreTranslateMessageでEnterキーを弾いてしまうと、 OKボタン以外のボタン上でEnterキーを押したときにも無視されてしまいます (そのときにはそのボタンが押されるべき)。 もちろん、PreTranslateMessageでフォーカス位置を調べてもいいけど、 そこまで面倒なことをするのなら、 OKボタンをDisable・非表示にしたほうが早いです。 OKボタン自体は残しておきたいのであれば、 なにもしない非表示ボタンをデフォルトにすればよいです。 PreTranslateMessageの方法だと、デフォルトボタン枠が出ているのに Enterキーが効かないというGUI上の矛盾もあります。
- 167 名前:392 mailto:sage [2007/09/21(金) 21:55:41 ]
- > OKボタン自体は残しておきたいのであれば、
> なにもしない非表示ボタンをデフォルトにすればよいです。 デフォルトボタンは何ですか、と問われたときに、ありませんと答える方が良いかと。
- 168 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 18:03:04 ]
- 今、以下の方法で自作ボタンを作ろうとしています。
・CStaticを派生させる。SS_BITMAPとSS_NOTIFYを設定する。 ・OnMouseMoveでカーソルが乗ったらSetCaptureなどして降りるまでハイライト用のビットマップをSetBitmapする。 ・カーソルが降りたらReleaseCaptuerして通常のボタン用ビットマップをSetBitmapする。 ・OnLButtonUpで親ウインド(CDialog)にWM_COMMAND,BN_CLICKEDをPostMessageする。下記ソース参照。あと押された時のビットマップをセットする。 CMyButton::OnLButtonUp { WPARAM w = MAKEWPARAM(id,BN_CLICKED); ::PostMessage(hParent,WM_COMMAND,w,0); ごにょごにょ } すると確かにLボタンを押下すると親のダイアログに通知されます。 しかしながら親ダイアログではON_BN_CLICKEDマクロで登録したハンドラが2回呼ばれます。 一回目は不明。2回目は私の作ったCMyButton::OnLButtonUpから。 誰が一回目のBN_CLICKEDを送るの?CStaticの規定クラス??
- 169 名前:392 mailto:sage [2007/09/22(土) 22:02:59 ]
- winuser.h
#define STN_CLICKED 0 #define BN_CLICKED 0
- 170 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 22:19:04 ]
- >>169
ありがとうございます。
- 171 名前:デフォルトの名無しさん [2007/09/22(土) 23:31:42 ]
- 本当にMFCが全くわかりません。
とにかく、GUIを作るのが難しすぎに感じます。 VC#なんて超簡単にGUI作れるのに・・・ まだまだ、VC+++MFCはデファクトスタンダードなんですかね?
- 172 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 00:33:02 ]
- >>171
MFCは欠陥製品だと思う 対抗するボーランドがコケちゃったんでMSの一人天下になっていますが これに付き合わされる開発者はたまらない C#を使いましょう
- 173 名前:デフォルトの名無しさん [2007/09/23(日) 00:42:51 ]
- 慣れの問題ですよ
VC#が簡単に、作れるって言っても例えばテキストエディタを作る場合 商用を考えたら標準のTextBoxなんて使い物になりません。 一から書くことになります。 だったら、WIN32APIを手間なく呼べるVC++に利がある。 VC#だと使う、WIN32APIをいちいち宣言しなくてはいけない。
- 174 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 01:58:19 ]
- MFC使わねばならん環境なら、頑張って使えるようになればいいだけだし、
使わなくて言い環境なら、C#でやればいいだろう。 何故このスレで愚痴るのか理解できない。
- 175 名前:デフォルトの名無しさん mailto:sage [2007/09/23(日) 23:52:49 ]
- >>174
MFCの習得に挫折した人がMFC叩きしてるだけ。 穏やかになだめてあげてください。
- 176 名前:デフォルトの名無しさん [2007/09/24(月) 00:10:51 ]
- 確かに他のライブラリと比較すると挫折率はダントツに高いかもしれん
よく、Cはポインタで躓いたなんて人いるけど似たようなもん
- 177 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 01:45:06 ]
- ていうかあまりの複雑さと面倒臭さに死にたくなるときあるな
なんでもかんでもメッセージって逆に面倒臭いだけだったんじゃないだろうか・・・
- 178 名前:デフォルトの名無しさん [2007/09/24(月) 02:17:59 ]
- けど、大抵の商用ソフトはMFCが使われている。
.NETなんて皆無では???
- 179 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 02:47:39 ]
- >>178
だって糞おせぇし
- 180 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 02:54:45 ]
- Vistaならネイティブとほとんど変わらんが?
- 181 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 03:10:20 ]
- >>180
それって普通に作ってた奴の方が遅くなったんでしょ?w
- 182 名前:デフォルトの名無しさん [2007/09/24(月) 05:07:52 ]
- MFCは隠蔽化というより隠蔽工作だというようなことがかかれた本があった。
本来仕組みなど知らなくても簡単に使用できるのが隠蔽化だが MFCには仕組みを知らなければバグの原因がまったく理解できない不可解な現象も多い。 それらを苦労して乗り越えて来た人間は威張り腐りって、 「MFCが糞なんじゃなくて理解できないやつが糞」と言いたいのだろう。気持ちはわかる。 だが世間一般ではそういう場合ライブラリが糞だという。 自分の腕前を自慢したいからって言葉を捻じ曲げてはいけない。
- 183 名前:デフォルトの名無しさん [2007/09/24(月) 05:31:44 ]
- あの当時に書かれたライブラリで今まで通用したものってほかに何かあるかな?
OLEを隠蔽するフレームワークとして十分納得いくし、フル機能のウインドウズ ソフトウエアを書くのにほかにいいライブラリが無かったのも事実だと思う。
- 184 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 06:03:59 ]
- >>それらを苦労して乗り越えて来た人間は威張り腐りって、
被害者意識が強い傾向が見られます。 何かトラウマになるような事でもあったのでしょうか(w
- 185 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 06:41:22 ]
- MFCがなければWIN32のバグが分からない
永遠に更新を続けるべき
- 186 名前:デフォルトの名無しさん [2007/09/24(月) 07:39:58 ]
- >>182
あー、でも俺、そういうラッパー系のクラスで 下層の構造知らずにうまく包んであるもんってみたことないわ 無理なんじゃねぇの?って思ってる 可変長ですよといいつつ なんも意識せずに1文字ずつ追加すると毎回全バッファを再確保する 最近の次世代(?)言語の文字列クラスのようにw
- 187 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 09:28:21 ]
- 文字列定数 -> System.String
CString -> System.Text.StringBuilder と考えれば、それはそんなもんかって気もする。 Stringの連結はおまけ機能ってことで。
- 188 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 10:54:07 ]
- MFCのいいところはVisualStudioで使う場合にドキュメントモデルを提供してくれることとダイアログエディタがあることか。
ちょっと凝ったことをしようと思うと折角クラスで隠蔽化しているように見えても実際にはAPIと同じ名前のメソッドだからAPIと手間は変わらないし、 全てを網羅しているわけではないから結局APIを直截呼ばないといけないケースもある。 あれはだからAPIラッパクラス集と思えばいいのであって、それ以上のフレームワークと思ってはいけないのだろう
- 189 名前:デフォルトの名無しさん mailto:sage [2007/09/24(月) 15:22:11 ]
- >>187
>Stringの連結はおまけ機能ってことで。 そんなことになってるぐらいならラップなんてしないほうがいいじゃないって思う
- 190 名前:デフォルトの名無しさん [2007/09/26(水) 11:01:12 ]
- CDC型のメンバからその描画領域のサイズを取る方法はありますでしょうか。
CBitmap* pBitmap = pDC->GetCurrentBitmap(); BITMAP bmp; pBitmap->GetBitmap(&bmp); とやってbmp.bmWidthやbmp.bmHeightを参照しようと思ったのですが、 ビューのOnDrawなどで渡される画面DCに対しては GetBitmapがエラーになるようなのです。 メモリDCに対しては成功します。 もちろん、OnDraw時はGetClientRectを使えばサイズを取れるのですが、 関係無い場所でpDCだけを見て調べられないかなと思っています。
- 191 名前:デフォルトの名無しさん mailto:sage [2007/09/26(水) 11:43:46 ]
- つ ::WindowFromDC
- 192 名前:デフォルトの名無しさん [2007/09/26(水) 11:53:25 ]
- >>191
ありがとうございます。 ::WindowFromDCというのは、CDC::GetWindowと対応しているようなので、 CRect rect; BITMAP bmp; if (pDC->GetCurrentBitmap()->GetBitmap(&bmp)) { /* メモリDC */ rect = CRect(0, 0, bmp.bmWidth, bmp.bmHeight); } else { /* 画面DC */ pDC->GetWindow()->GetClientRect(rect); } とやってみたところ、どちらの場合でもサイズを取ることができました。 判定方法はこれで大丈夫ですよね?
- 193 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 13:30:06 ]
- .NETのMenuStrip簡単にできていいなぁ
MFCでもサポートしてくれ
- 194 名前:デフォルトの名無しさん mailto:sage [2007/09/29(土) 21:33:08 ]
- 簡単に作れる代わりに使い物にならんほど遅いプログラムとなってしまった
.NET非常に残念だったな
- 195 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 01:39:05 ]
- MFC not dead - "massive update" planned
まさか .NETは無しね!MFC大幅機能強化するから! なんてことになるん(r
- 196 名前:デフォルトの名無しさん [2007/09/30(日) 06:51:40 ]
- MFC と NET って、どの程度の処理速度がちがうんですか?
まじレス希望
- 197 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 08:27:09 ]
- >>196
MFC全盛期のPCでMFCを動かすと、今のハイエンドなPCで.netを動かすのとは較べ物にならないほどもっさりしています。
- 198 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 11:28:36 ]
- MFCって.NETのコントロールと比べると鼻くそみたいにショボイのに2008にもまだ残ってる理由ってなんですか?
必要かな?
- 199 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 12:54:06 ]
- 鼻くそみたいにショボイと思ってるのに
このスレへやってくる理由ってなんですか? 必要かな?
- 200 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 13:07:07 ]
- .NETのコントロールなんて飾りです。偉い人には(ry
冗談抜きで。
- 201 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 16:56:35 ]
- >>198
2008ではMFCはなくなってたお
- 202 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:25:47 ]
- >>201 ソースキボンヌ
2008でも含まれると考えられるソースはこちら ttp://msdn.microsoft.com/msdnmag/issues/07/06/Cpp/default.aspx?loc=jp
- 203 名前:デフォルトの名無しさん mailto:sage [2007/09/30(日) 18:29:11 ]
- EEダウンロードできんじゃん
- 204 名前:デフォルトの名無しさん [2007/10/01(月) 11:36:20 ]
- VS2005とMFCで拡張DLLを作成しているのですが、
この拡張DLLを呼び出した側のインスタンスハンドルって どうやって参照すればよいのでしょうか。 AfxRegisterClassで必要なのですが、 AfxGetInstanceHandleだと、大元のEXEのハンドルが返ってきてしまいます。 EXEから呼び出された別の拡張DLLがこの拡張DLLを使う可能性もあるため、 大元のEXEではなく、呼び出し元を参照できるようにしたいのです。
- 205 名前:デフォルトの名無しさん mailto:sage [2007/10/01(月) 23:44:38 ]
- Code Projectにたくさんのコントロールがあげられているが
コントロールってダイアログベースにするかViewをFormViewに選択するしか 使えないんでしょうか?
- 206 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 19:19:08 ]
- VC6です。
プログレスバーについての質問。 時間がどのくらい掛かるか不明な処理でプログレスを表示したい。 Webなんかで有るような、2−3このコマが左から右へくるくる回ってるの が良いんだけど、CProgressCtrlじゃできないっぽい? なんか良い案あったらおしえて。 時間がどのくらい掛かるか不明なのは、開始ボタン押すとハードと通信して ハードが処理終了するのを待つから。 ハードは詳細な進捗なんて返してくれない。 ハードの状態や処理対象によっても時間が大きく変わるので平均でこのくらい ってどんぶりで表示するのも厳しい状況。 したがって、ループするようなヤツが欲しいといった理由。
- 207 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 19:21:10 ]
- 砂時計
- 208 名前:206 mailto:sage [2007/10/02(火) 19:29:58 ]
- >>207
レスサンクス。 砂時計は却下されてしまいました。 と言うか、すでに砂時計は出してるけど、曰く 「ホントに、動いてるのか解らない」だそーで。 プラスでプログレスが欲しいんだと。 えらい人の考えは良くわかりません。
- 209 名前:デフォルトの名無しさん mailto:sage [2007/10/02(火) 21:23:57 ]
- >>206
まあ、砂時計出したままフリーズするアプリもあるから、動いているか どうかを確認したいというのもわからなくはない。 どうしてもプログレスコントロールにこだわるなら、何回も繰り返して 描画してやればいいんじゃない?
- 210 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 01:24:29 ]
- >>205
ん? Code Projectにあがっているコントロール”だけ”使えてないの? そうなら、そのコントロールを挙げてくれ。 そうでなく普通のEditやComboも同じように使えてないなら、動的生成すればいい。 ”Edit 動的生成”とかでググレば、サンプルとかあるんじゃねーかな。
- 211 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 02:23:43 ]
- >>206
IEのようなウィンドウ右上のアニメーションで済むならCAnimateCtrlでが楽。 プログレスバーの現在位置が左から右へ動き続けるような奴だと 中断ボタンも必要だろうし、別スレッドでプログレスバー制御と中断の 入力待ちをすることになるんじゃないかな。 砂時計を却下する上司って良いなーと思った。
- 212 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 08:38:51 ]
- 動いてるのか解らないという理由で砂時計がダメなら
IEのようなアニメーションもダメだろう
- 213 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 18:40:21 ]
- >>206
blogs.wankuma.com/melt/archive/2007/06/21/81494.aspx
- 214 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 20:03:48 ]
- エディットコントロールの質問です。
コントロール内部に画像を表示させて、文字編集を行うものを作ろうと思ってるのですが なかなかうまくいきません。 OnCtlColorでCreatePatternBrushで作ったものを返すようにして 何とか文字未入力領域に画像を表示させたのですが、 文字入力エリア部分に画像を表示できなくて困っています。 何かいい解決方法はないんでしょうか?
- 215 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 20:19:12 ]
- >>214
SetBkModeで透過にするのを忘れている予感 マルチラインは、この方法だと不都合があるみたいなので注意
- 216 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 20:30:44 ]
- >>215
あ、説明たりなくて申し訳ない。 複数行エディットコントロールについての話でした。
- 217 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 01:05:32 ]
- 質問です。
CViewの派生クラス を A 、 CWndの派生クラス を B とします。 Aのメンバ変数にBを持ち、A の OnCreate にて B を Create し、A全体に貼り付けました。 正常に生成され、貼り付けもうまくいっているのですが、B にてマウスホイールが 取得出来ないことに気づきました。(クリック等は正常動作します) どうもフォーカスがいっていないようなので、A の OnSetFocus にて、B に対して SetFocus をすると、期待通りの動作をしてくれ、B にてホイールを取得出来る ようになりました。 A全体にBが貼り付けてあり、これをクリックしたら当然Bにフォーカスが行くものだと 思っていたのですが、なぜ行かないのでしょうか? XP Pro SP2 VC++8 sp1
- 218 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 02:15:47 ]
- >>217
例えば、ラベルをクリックしてもフォーカス受け取らないじゃん? そしてどーやるんだったか忘れた。 ごめん。 SPYでフォーカス受け取るコントロールと 受け取らないコントロールのメッセージの違いを調べる…とか。 激しく疲れるな。。
- 219 名前:デフォルトの名無しさん mailto:sage [2007/10/04(木) 06:11:25 ]
- ラベルというかスタティックはidの設定だから全然別の話
- 220 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 00:21:28 ]
- >>219
idの設定て、IDC_STATIC? まさか、そんなはずは。 もうちょっと分かるように説明してくれ。
- 221 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 10:53:03 ]
- シングルダイアログのプログラムです、最小化ボタンと最大化ボタンを付けるのを忘れてしもうたww
今から付加したいのだが、どのクラスのどのプロパティーをいじったらええの? VS20005 MFC
- 222 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 11:21:44 ]
- >>221
ダイアログエディタかテキストエディタで<project>.rcを編集し給え。
- 223 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 11:58:13 ]
- >>222
221です rcファイルいじって悲惨な目(編集不能)に何回かあったのだが大丈夫なのか?
- 224 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 12:34:21 ]
- ダイアログのプロパティでMinimize/MaximizeBoxをTrueにすればいいだけの話だろ。
何を悩んでるんだ?
- 225 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 12:53:44 ]
- >>224
('ー')ゞラジャサンクス
- 226 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 13:57:59 ]
- >>223
ダイアログエディタでプロパティを変更する行為だけで編集不能にできるならたいしたもんだ。
- 227 名前:デフォルトの名無しさん [2007/10/06(土) 15:19:49 ]
- CToolBarのボタンを大きくすることは出来ますか?ロードするビットマップのサイズが大きければ大きくなるのでしょうか?
- 228 名前:デフォルトの名無しさん [2007/10/06(土) 18:17:23 ]
- MFCのSDIアプリケーションを作成しています。
日本語以外のOSでも正しく動作させたいのですが、 最小化ボタンの上にカーソルを合わせたときに表示されるツールチップの「最小化」 などは自動的に現地の言葉で表示されるのでしょうか?
- 229 名前:デフォルトの名無しさん [2007/10/06(土) 19:09:31 ]
- コード調べたらわかるでしょ
- 230 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 19:24:13 ]
- 日本語化されてない英語アプリ動かしてみりゃわかるだろ
- 231 名前:デフォルトの名無しさん mailto:sage [2007/10/06(土) 19:28:51 ]
- apiのソースは非公開
漏れたのもあるけど
|

|