- 1 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
- Microsoft Foundation Classライブラリ専用スレです。
前スレ ■MFC相談室 mfc18d.dll■ pc11.2ch.net/test/read.cgi/tech/1185917008/
- 357 名前:デフォルトの名無しさん [2008/07/29(火) 21:34:16 ]
- >>341
ありがとうございます。 その方法で行の高さはかえれるようになりましたが、ヘッダの高さが変えられません。 どうすればいいでしょうか?
- 358 名前:337 mailto:sage [2008/08/02(土) 00:30:06 ]
- >>338
OnCreate内でも子コントロールを操作して問題無いからどちらも子コントロール初期化終わってる希ガス
- 359 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:06:49 ]
- >>357
ヘッダは別コントロールだから、そっちで何とかするしかないかも
- 360 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 20:22:34 ]
- >>358
DDXとか初期化されて無いでしょ?
- 361 名前:337 mailto:sage [2008/08/03(日) 23:56:56 ]
- >>360
DDXと言うとコントロールとコントロール変数を関連付けるアレかな? あっちは初期化終わってなかったのか
- 362 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 00:11:31 ]
- CDialog::OnInitDialog -> UpdateData -> DoDataExchange
こんな感じになってるからね。 大体、WM_CREATEの時点だと子ウィンドウはまだ存在しないと思うし。
- 363 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:01:35 ]
- 質問お願いします。
edit controlを2個 OKボタンを1個 作成しました。edit controlが共に値が入っていないと OKボタンが非表示になるようにしたのですが 非表示の場合でも、Enterキーを入力するとOKが適用されてしまいます。 非表示の場合、Enterキーの無効化または常に無効化する方法を ご存じの方はご教示ください。
- 364 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:05:57 ]
- >>363
OnOkをオーバーライドしてそこにエディットコントロールの中身を調べるプログラムを書く。 もし空白など適切なものではない場合はreturnでそのまま返してやるだけ。
- 365 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 23:25:42 ]
- で、SP1まだ?w
- 366 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:20:15 ]
- >>363
同時にDisableにしておけばよいかと。
- 367 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 10:37:01 ]
- Disableにしても消しても無理
- 368 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:46:45 ]
- OnOkはシステム定義のメッセージだろ
OKボタンじゃなくて自分で作ったボタンにすればいい
- 369 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:32:40 ]
- >>368
>OnOkはシステム定義のメッセージだろ 何を言っているのか解らんが、 1. IDがIDOKである、ダイアログの子ボタンからのBN_CLICKED を受け取ったとき 2. ダイアログ自身がキー入力を見て Enter だったとき に、ダイアログから呼び出される仮想メンバ関数。
- 370 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:58:56 ]
- win32で定義してるのを知らんのか
WINUSER.H(7537): #define IDOK 1 /* * Dialog Box Command IDs */ #define IDOK 1 #define IDCANCEL 2 #define IDABORT 3 #define IDRETRY 4 #define IDIGNORE 5 #define IDYES 6 #define IDNO 7 #if(WINVER >= 0x0400) #define IDCLOSE 8 #define IDHELP 9 #endif /* WINVER >= 0x0400 */
- 371 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:16:02 ]
- また意味不明なことを言ってるよ。
話をどこにもっていきたいのかわからん。
- 372 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 14:32:05 ]
- >OKボタンじゃなくて自分で作ったボタンにすればいい
リターンキーでIDOKを回避するにはこれだけじゃだめで、 その自分で作ったボタンをデフォルトボタンにする必要がある。 まあOnOK()捕まえたほうが確実だね。
- 373 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:53:18 ]
- >>367
なんでDisableが無理? Disableにすればエディットボックス上でEnter押しても効かなくなるけど。 >>369 > 2. ダイアログ自身がキー入力を見て Enter だったとき > に、ダイアログから呼び出される仮想メンバ関数。 これは違う。 Enterキーはデフォルトボタンを押す操作。 キャンセルボタン上でEnterキーを押せばOnCancelがコールされるし、 自分で用意したボタン上ならそのハンドラがコールされる。
- 374 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:17:56 ]
- OKボタン削除してもOnOK呼ばれる
- 375 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 21:21:23 ]
- MFCやってるんなら、始めにぶつかって覚えてそうなことなのになw
- 376 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 22:40:24 ]
- >>374
OKボタンを削除してもOnOKが呼ばれるのは、IsDialogMessage()が、 デフォルトボタンが存在しないときにIDOKを発行しているからであって、 直接OnOKが呼ばれているのではないのでは? OKボタン削除だけしておいて代わりのデフォルトボタンを用意しなかったり、 DM_GETDEFIDメッセージを処理しなかったりしているからそうなるだけ。
- 377 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:02:47 ]
- シングルウィンドウでexeのアイコンにファイルをドロップしたり、その実行ファイルに関連付けされているファイルを開いた場合
どの部分でドロップしたファイルや開いたファイルのパスを取得するのでしょうか。
- 378 名前:デフォルトの名無しさん mailto:sage [2008/08/08(金) 20:50:07 ]
- >>377
取得しなくとも__argv or __wargvに保持されています。 DialogベースのアプリでないならCYourApp::InitInstanceのParseCommandLineでコマンドラインの解析が行われます。 argvなんて単語初めて聞いた!!という場合はParseCommandLineの利用をお勧めします。
- 379 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:27:14 ]
- VisualStudio2005で、WindowsMobile6用にSDIで作っています。
リストボックスのフォントを等幅フォントにしたいと思って、次のように書いたのですけど、反映されません。 CFont nfont; nfont.CreateFont( 0, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut SHIFTJIS_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality FIXED_PITCH | FF_DONTCARE, // nPitchAndFamily _T("MS ゴシック") // lpszFacename ); GetDlgItem(IDC_LIST1)->SetFont(&nfont); ちなみにHeightの設定だけ微妙に反映される状態です。 リストの1行の高さだけが変化し、フォントの大きさは変わらないという微妙さ加減です。 BOLD指定しても太字にならないし、何がなにやらよくわからないです・・・。 リストボックスの文字を等幅フォントに設定する方法を教えてください〜
- 380 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 14:37:12 ]
- そのフォントがスコープ抜けて無効になってるというオチじゃなかろうね?
- 381 名前:379 mailto:sage [2008/08/12(火) 15:55:41 ]
- >>380
スコープ!? あわわわわ。まさにそのオチでしたorz ありがとうございました(泣)
- 382 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 06:32:06 ]
- sp1出てたのか
いろんなニュースに紛れてて気付かなかった
- 383 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 14:20:46 ]
- あれ?
ファイルのフルパスからファイル名を省いたフォルダパスを取得するのってどうするんでしたっけ?
- 384 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 14:41:01 ]
- >>383
PathRemoveFileSpec()
- 385 名前:383 mailto:sage [2008/08/19(火) 14:41:34 ]
- _tsplitpath
でしたね。。。 すまそ。
- 386 名前:383 mailto:sage [2008/08/19(火) 14:43:06 ]
- >>384
そんなのあったんですね!! ありがとうございます!!!
- 387 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 21:19:42 ]
- Path系はIE5のライブラリのAPIだっけか
- 388 名前:デフォルトの名無しさん mailto:sage [2008/08/19(火) 23:09:10 ]
- shlwapiの4.71以降だからIE4.0かな
splitpathなんてDOSの頃使ったっきりで、すっかり忘れてたよ
- 389 名前:デフォルトの名無しさん [2008/08/22(金) 00:07:23 ]
- エディットボックスにctrl+vで文字を貼り付けたときに
10文字以上になった場合にメッセージボックスを表示させるにはどうしたら良いでしょうか?
- 390 名前:名無し募集中。。。 mailto:sage [2008/08/22(金) 00:29:00 ]
- DDV_MaxChars
- 391 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:07:17 ]
- MFCスレって、いつの間にか過疎ってるのな。
皆どこ行っちゃったんだろう?
- 392 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 01:42:32 ]
- ATL/WTL, .NETなどなど
- 393 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 03:16:54 ]
- 残業でカンヅメ状態だから書き込めない
- 394 名前:デフォルトの名無しさん mailto:sage [2008/08/31(日) 11:28:58 ]
- SP1でいろいろ追加されたが、なかなか触る暇が無い
- 395 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 14:28:56 ]
- MFCで印刷関係のサンプルコード検索しようとすると、
ブラザーのレーザープリンタが、ちょいちょいヒットするの なんとかしてくれませんか?
- 396 名前:名無し募集中。。。 mailto:sage [2008/09/02(火) 14:49:17 ]
- ブラザーの新型で印刷どうぞ!
pc.watch.impress.co.jp/docs/2008/0902/brother.htm
- 397 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:22:38 ]
- 印刷といえば、.NET Framework 3.0 で Microsoft XPS Document Writer が
インストールされるようになったけど、あれはいいな。手軽に試せて。
- 398 名前:名無し募集中。。。 mailto:sage [2008/09/02(火) 21:06:18 ]
- つPrimoPDF
- 399 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:22:19 ]
- SP1のタブMDI(呼び方あってる?)って、デフォルトでマウスイベントとかなさ気だな・・・
まだちゃんと仕様見てないが・・・ていうかテーマで挙動かわりやがる
- 400 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 09:17:49 ]
- すみません、ひとつ質問というか相談させてください
現在、VC6でMFCを用いて開発しています。 昨日、取引先から、過去に弊社が納品したソフトを、 「Google Chrome」みたいなマルチタスク方式を組み込んで バージョンアップして欲しいという要求が来ました。 過去に納品したソフトにはタブで画面を切り替える部分がありますが、シングルタスクです。 この部分をマルチタスクにして欲しいという内容でした。 要求の理由は目新しさや安定性が売りになるからとのです。 まず、実現可能性の調査をすることが決定し、 私がその調査をすることになったのですが、 いろいろ検索したりして情報を探しても、 なかなか適した情報がヒットしない状況です。 で、質問なのですが、VC6で実現できるのでしょうか? 場合によっては最新の開発環境(VS2008だったかな)へ移行することも考えています。 よろしくお願いします
- 401 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 10:15:38 ]
- できます。
たぶん、きっと
- 402 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 10:27:08 ]
- マルチタスク、マルチスレッド、マルチタブを混同してないか?
まずはその違いを理解してから質問しろよ
- 403 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 11:26:07 ]
- ちなみに「Google Chrome」は VS2005 でビルドします。
MFC は使用されていないみたいです。 VC6, VS2003, VS2008 を持っているおいらは負け組み? orz
- 404 名前:名無し募集中。。。 mailto:sage [2008/09/05(金) 16:52:12 ]
- 2005をskipするのはありがちだと思う
VISTAで開発するなら2008になるよなぁ
- 405 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:39:24 ]
- chromeはvs2008でもビルドできたよ
- 406 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:07:34 ]
- VC6でchromeをビルドできるようにして納品しちゃえば?
- 407 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 19:16:02 ]
- まじ?>405
釣りじゃないよね? 今から試してみよう
- 408 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 19:28:10 ]
- ソリューションを変換してビルド中だけど
warning C4396 が山のように出てるぞ (Chome をビルド・改造するってスレはある?あれば移動します)
- 409 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 09:29:12 ]
- CListCtrl上にデータを表示し入ってくるデータで更新しているのですが、一定時間がたつと画面表示がおかしくなります。
フォントキャッシュが壊れた時のようにコンボボックスの右側の▽ボタンに6と表示されたり、画面全体(Windows含)が残像を残すようになったり。 データの受信を中止してもそのままで、またメモリ使用量を調べても特に増えてはいません。 InValidate関数等も試しましたが同じ現象が起こります。 最小化する、別の画面を最前面に表示する等で他の画面は正常に戻るのですが、再度リストを表示するとその瞬間に同じ症状が出ます。 どのような対策方法があるか教えていただけないでしょうか。
- 410 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 10:57:58 ]
- そうなんだ
- 411 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:02:52 ]
- どのような対策って、バグをつぶすしかねーだろ
- 412 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:12:05 ]
- >>409 の訳:「ソース出さないけど誰かデバッグして下さい」
- 413 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:46:39 ]
- よくあるケースみたいだから対策方法教えてくれと言ってるのかもしれんが、
普通無いケースだからなあ
- 414 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:23:51 ]
- 「入ってくるデータで更新」がちょっと気になるな。
別スレッドでなんかやってるとか、 逆にシングルスレッドで表示の更新が止まってるとか。
- 415 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 15:46:55 ]
- リソース食いつぶしてるようにも見えるなあ
- 416 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:24:26 ]
- MFCと関係ないだろ
- 417 名前:デフォルトの名無しさん [2008/09/10(水) 19:20:41 ]
- スタッティク領域に書かれたテキスト文字だけ拡大できる
のか
- 418 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 19:23:34 ]
- ひとりごとです
- 419 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 21:56:10 ]
- >>409
メモリーじゃないとすればGDIオブジェクトの数確認してみ。 タスクマネージャで表示メニューいじれば確認できる。 ひとつのアプリで使用できるGDIオブジェには上限があり 開放し忘れ関数が何度も呼ばれると409のような状態になる。
- 420 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 09:59:09 ]
- >>419
タスクマネージャにそんな機能があるとは、知らなかった これは便利
- 421 名前:409 mailto:sage [2008/09/11(木) 11:12:54 ]
- ソースも出さず失礼しました。
単純なプログラムでも同じ状態になるので、何か単純な回避方法があるのではないかと思ったのです。 とりあえずGDIオブジェクトを調べてみようと思います。 ありがとうございました。
- 422 名前:名無し募集中。。。 mailto:sage [2008/09/11(木) 13:03:56 ]
- >>419
便利な事を教えてくれてありがとう
- 423 名前:デフォルトの名無しさん [2008/09/15(月) 23:52:27 ]
- 質問です。
現在VS2008でダイアログベースのプログラムを作成しています。 多重起動を禁止するため、以下の手順でウィンドウクラス名を変更しました。 1.ダイアログのClassNameをAAAAに変更 2.C***App::InitInstanceでClassNameをAAAAに設定 BOOL C***App::InitInstance(){ /* MFCによる処理 */ WNDCLASS wc; HINSTANCE hInst = ::AfxGetInstanceHandle(); if(!::GetClassInfo(hInst, CLASS_NAME, &wc)) { ASSERT(::GetClassInfo(hInst, "#32770", &wc)); wc.lpszClassName = CLASS_NAME; wc.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(IDR_MAINFRAME)); ASSERT(::AfxRegisterClass(&wc)); } ASSERT(CWinApp::InitInstance()); /* 残りの処理 */ C***Dlg dlg; dlg.DoModal return FALSE; } Debug版ではDoModalでちゃんとウィンドウが表示されるのですが、Release版ではDoModalが-1を返し異常終了してしまいます。 Release版でやらなければいけない処理などがあるでしょうか? また、間違ってる処理などがあれば教えてください。
- 424 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 00:04:30 ]
- ASSERTがいかんのじゃね? 誤解してんじゃね? よくみてねーけどさ。
- 425 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 00:17:59 ]
- うん、俺もちゃんと見てないがInitInstance()なんてものをASSERTの中で呼んでることが怖い
- 426 名前:423 mailto:sage [2008/09/16(火) 00:55:56 ]
- >>424-425
ありがとうございます!解決しました! ASSERTを誤解してました。これからは変数値の評価だけに使うことにします。
- 427 名前:名無し募集中。。。 mailto:sage [2008/09/16(火) 00:57:28 ]
- 多重起動防止はCreateMutexを使うのが普通だぜ
m_hMutex = ::CreateMutex( NULL, 0, "__HogeAppMutex__" ) ; if ( ::GetLastError() == ERROR_ALREADY_EXISTS ) { ::CloseHandle( m_hMutex ) ; m_hMutex = NULL ; return( FALSE ) ; }
- 428 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 13:22:56 ]
- >>426
Releaseビルド時にも式の評価だけはしてくれるVERIFYマクロがあるよ
- 429 名前:デフォルトの名無しさん [2008/09/16(火) 20:16:49 ]
- >>427
共有メモリでもいいかも知れない。 共有メモリに最初に起動したウィンドウの ハンドルを格納しておいて、 多重起動された時に最初に起動したウィンドウ を最前面に表示させるとか・・・
- 430 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:00:23 ]
- >>429
実はその方針では破綻する。
- 431 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 10:51:59 ]
- >>429
>最初に起動したウィンドウの >ハンドルを格納 する前に、二番目に起動したプロセスのウィンドウハンドルが 格納されてしまうかも知れないわけよ。
- 432 名前:423 mailto:sage [2008/09/17(水) 11:52:16 ]
- 返信遅くなってすいません。
>>427 これからはこれを多重起動の確認に使ってみようと思います。 ありがとうございます! >>428 こんなマクロもあったんですね。 これからはASSERTの代わりに使ってみます。
- 433 名前:名無し募集中。。。 mailto:sage [2008/09/17(水) 16:24:05 ]
- >>429
>多重起動された時に最初に起動したウィンドウ >を最前面に表示させるとか・・・ >>427のreturn前にコレだな CString strWndTitle ; strWndTitle.LoadString( IDR_MAINFRAME ) ; ::SetForegroundWindow( ::FindWindow( NULL, (LPCTSTR)strWndTitle )) ;
- 434 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:03:32 ]
- MFCをマクラって略してんの俺だけ?
- 435 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:03:10 ]
- ファンデーションはどこに行ったんだ
- 436 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:26:38 ]
- どっかにふっとんだ。
- 437 名前:名無し募集中。。。 mailto:sage [2008/09/21(日) 15:46:46 ]
- ファウンデーションでしょ
- 438 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:36:40 ]
- はげしく、どっちでもいいw
- 439 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:57:36 ]
- どっちでもいいぐらいだからどっか行ったんじゃね?w
マクラいいなw
- 440 名前:デフォルトの名無しさん [2008/09/21(日) 19:24:06 ]
- ダイアログコントロールの種類(ボタンかエディットかなど) を判別する関数とかありますか?
- 441 名前:名無し募集中。。。 mailto:sage [2008/09/21(日) 20:13:57 ]
- IsKindOfかなぁ
- 442 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 21:14:15 ]
- 関数は知らないけどapiならある
- 443 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 21:53:50 ]
- 質問です。
タスクトレイにアイコンを格納しようと思っているんですが、タスクトレイに表示されるアイコンが32ピクセルのアイコンになってしまいます。 タスクトレイに表示されるアイコンを16ピクセルのアイコンにするにはどうすればいいんでしょうか? //SetIcon(m_hIcon, TRUE); ← タスクバーのアイコンが16ピクセル、タスクトレイのアイコンが32ピクセルになる //SetIcon(m_hIcon, FALSE); ← タスクバーのアイコンが32ピクセル、タスクトレイのアイコンが32ピクセルになる m_iconData.cbSize = sizeof(NOTIFYICONDATA); m_iconData.uID = TRY_ID; m_iconData.hWnd = m_hWnd; m_iconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP; m_iconData.hIcon = m_hIcon; m_iconData.uCallbackMessage = TRY_MESSAGE; lstrcpy( m_iconData.szTip, "***" ); ::Shell_NotifyIcon( NIM_ADD, &m_iconData );
- 444 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 22:13:32 ]
- いまいちよく判らんけど、LoadImageで取り出す大きさを明示的に指定すれば良いんじゃね?
- 445 名前:443 mailto:sage [2008/09/30(火) 03:00:33 ]
- >444
LoadIconで2種類のサイズのアイコンを取得していると思っていたんですが、LoadImageで取得する必要があるのでしょうか? 今はこうやってアイコンを取得しています。 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- 446 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:07:47 ]
- あまり関係ないかもしれないけどLoadIcon()って非推奨じゃなかったっけ
- 447 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 09:44:39 ]
- LoadIcon()は昔からある固定サイズの1種類しかとれないよ。
- 448 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:42:14 ]
- MFCのウィザードが吐き出すコードで
SetIcon(m_hIcon, FALSE) ってあるけど、32x32のアイコンを16x16に縮小して表示するだけで、 16x16のアイコンを読み出して表示しているわけでは無かったりする。 DestoryIcon呼ぶの('A`)マンドクセ、ってのが理由だろうな。
- 449 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 22:44:16 ]
- LoadIcon非推奨ってことは16×16のビットマップで描画したほうがよかったりするんだろうか?
アイコン使うメリットってなんだろ?
- 450 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:45:03 ]
- メンバのCArrayを戻り値として返したいんですけど
CArray<〜*, 〜*>& GetData() { return( m_arrData ); } だと、コンパイル時にprivateにアクセスしています。みたいなメッセージが表示されます。 (他のクラスからアクセスしてる) どのように書くのが正しいのでしょうか…
- 451 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 14:49:35 ]
- 自己解決しました…
- 452 名前:443 [2008/10/03(金) 00:29:16 ]
- 返信が遅くなってすみません。
>446-449 ということは16x16と32x32のアイコンをそれぞれロードする必要があるということでしょうか? また、16,32,48ピクセルのアイコンをそれぞれ出力するにはどうすればいいんでしょうか?
- 453 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 07:56:31 ]
- 自分でLoadImage使うって書いてるじゃない
- 454 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 09:55:19 ]
- >m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
これと同じように、 m_hSmallIcon = (HICON)::LoadImage(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MAINFRAME),IMAGE_ICON,16,16,LR_DEFAULTCOLOR); とかやればよし。
- 455 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 13:28:01 ]
- >>440
GetClassName API
- 456 名前:デフォルトの名無しさん [2008/10/05(日) 12:31:57 ]
- age
- 457 名前:443 mailto:sage [2008/10/05(日) 14:32:49 ]
- >453-454
無事アイコンの使い分けが出来るようになりました。 ありがとうございました!
|

|