[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/01 12:35 / Filesize : 186 KB / Number-of Response : 746
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■MFC相談室 mfc19d.dll■



1 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
Microsoft Foundation Classライブラリ専用スレです。

前スレ
■MFC相談室 mfc18d.dll■
pc11.2ch.net/test/read.cgi/tech/1185917008/

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
無事アイコンの使い分けが出来るようになりました。
ありがとうございました!

458 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:06:35 ]
iniファイルをexeのところに作ろうとしてますがうまくいきません。なぜ。。。
App::InitInstance()
{
WCHAR dir[MAX_PATH];
::GetModuleFileName(NULL, dir, MAX_PATH);
wchar_t* pdest = wcsrchr(dir, _T('\\'));
pdest[1] = '\0';
::SetCurrentDirectory((LPCTSTR )dir);
wcscat_s(dir, _T("XXX.ini"));
free((void*)m_pszProfileName);
m_pszProfileName = _tcsdup(dir);
}

459 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:30:40 ]
何がうまく行ってないか不明だし、
そこまでできてたらデバッガで調べるだろ

460 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:42:49 ]
CWinApp::SetRegistryKeyを後で呼び出していたら笑う。
デバッガでステップ実行すれば、正しいパスが渡せているかどうかは一発だな。

461 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:43:13 ]
ところで、これはMFCになんか関係あるのか?

462 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 21:49:12 ]
m_pszProfileName m_pszProfileName がMFC



463 名前:デフォルトの名無しさん [2008/10/11(土) 21:59:13 ]
CStringって普通のStringじゃだめなのか?

464 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:04:39 ]
CStringを使うのが普通

465 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:04:55 ]
デバッガ上では dir にexeまでのパスが入っておりxxx.iniもセットされてますが
実際、ファイルは出来上がっていない。しかし、GetProfileStringでデータは取れるという状態

466 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:31:21 ]
レジストリ使ってるわけじゃなくて?

467 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:52:14 ]
簡単に変更でききるようにiniついたかったんですが

468 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 22:56:44 ]
>>466
コードに書いてるのは、GetProfileStringなのか? 
ぐぐり直したほうがいんじゃねーのか?

469 名前:468 mailto:sage [2008/10/11(土) 22:57:47 ]
>>466でなくて>>465の間違い。 すまねぇ。

470 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:31:17 ]
Win32APIの同名APIを呼んでいる可能性があるかも。
WriteProfileStringなんか引数が全く同じだし。

471 名前:463 mailto:sage [2008/10/11(土) 23:34:38 ]
>>464
ありがとう><;まだ、MFCはじめたばかりなので、習ってCString使っていこうと思います><;
ただ単に慣習的なもののような気がしますが。

472 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 23:58:42 ]
>470 愛してる
そのまま使うとレジストリ保存だった。
正しくはWritePrivateProfileString() で最後に保存先指定でいけた



473 名前:472 mailto:sage [2008/10/12(日) 00:36:16 ]
>468 も愛してるよ〜

474 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 02:17:50 ]
>>472
愛は要らんから、CWinApp側のメソッドを使ってやろうぜ。
MFCだと、普通はCWinApp派生クラスがtheAppとしてグローバルで宣言されているはず。

475 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 04:27:45 ]
ダイアログの中のCStaticコントロール上のOnMouseMoveイベントを取得したいのだけど、どうすればいいのだろうか?
だれか教えてください。

476 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 04:30:12 ]
そのCStaticをクラス化して、その中で受け取るか
ダイアログ側のクラスで、CStaticのハンドルを指定してOnMouseMoveを受け取ればいい

どっちが綺麗かと言われると、ときと場合によるけど、前者の方がいいかな

477 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 05:43:56 ]
たぶんコントロールがIDC_STATICのままなんだろ

478 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 12:12:43 ]
なるほどIDC_STATICじゃ出来ないな
固有の名前をつけないと

479 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 08:06:30 ]
>ダイアログ側のクラスで、CStaticのハンドルを指定してOnMouseMoveを受け取ればいい

こちらの方法をもう少し詳しく教えてもらえないだろうか。
ON_WM_MOUSEMOVE() と void CFooDlg::OnMouseMove(UINT nFlags, CPoint point)
のセットで間に合うモノなんだろうか?

コントロールのIDはもちろんユニークなモノを付けている。



480 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:14:38 ]
PreTranslateMessageかなぁ

481 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 11:24:09 ]
479です。
ごめんなさい。問題解決しました。
今までクリックを検出するためにnotifyをtrueにしていたため、OnMouseMoveでは
コントロール領域のMouseMoveが取得できなかっただけでした。

482 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:11:56 ]
ID_FILE_OPENなどが選択された際、
それがメニューからか、ツールバーからか、アクセラレータからか
などをコマンドハンドラ内で調べられませんか?
MFC内の隠し関数とかでも構わないのですけど。
コマンドハンドラまで来てしまったら絶対に区別できないですか?



483 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:09:11 ]
区別する必要があったら区別できるように作ればいい。

484 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:12:19 ]
ID_FILE_OPEN_1とかID_FILE_OPEN_2とか作って、ラッパー経由とか?w

485 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:43:28 ]
>>482
WM_COMMANDにそういうパラメータあったはずだから調べてみなさい。

486 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 21:01:29 ]
>>483-485
CWnd::GetCurrentMessage()を使って
WM_COMMANDの付加情報からコマンド発生元を取れました。
ありがとうございます。

487 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 17:54:12 ]
CListCtrlレポート形式で
たくさん表示させると重いです

何か回避方法はありますか?

488 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 17:57:51 ]
仮想リストビューとか

489 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 17:59:14 ]
こういうやつね
仮想リストコントロール
ttp://msdn.microsoft.com/ja-jp/library/ye4z8x58(VS.80).aspx

490 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 18:34:18 ]
>>488-489
ありがとうございます。

心持ち軽くなったような気がするけどやっぱり重いです

これって
LVS_OWNERDATA で作成して
描画する文字列の部分を自分で割り当てるってことでいいんですよね。

仮想リストビュー
www.hokuriku.ne.jp/ymyamada/mfc/VirtualList.htm
ここも参考にしました。


やりかたまちがえてるのかな^^;

491 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 18:39:04 ]
>>490
更新すべき場所だけ更新すればOK
普通のリストだと表示部分全てに更新がかかるから重いだけ。

492 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 23:49:31 ]
ダイアログAに
ラジオボタン1
ラジオボタン2
が設置されていて、この二つのラジオボタンがグループで、
2を押したら1のチェックが外れるとします(逆もあり)。

今、2を押して、1のチェックが外れました。
ダイアログAのWindowProcにはラジオボタン1のコントロールIDで何かしらのメッセージが
飛んでくるのでしょうか?
ちなみに自分で試してみたところだとどうも飛んでこないようなのです。
ではラジオボタン1のチェックが外れた!というイベントをダイアログA上でキャッチすることはできないのでしょうか?



493 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 10:21:36 ]
(コントロール変数).GetCheck(); で調べればよろし。
チェックのON/OFFを手動にすれば、チェックをつけなおす前に以前の状態を調べればチェックが外れたかどうか調べれる。

494 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 10:22:25 ]
>>492
「ラジオボタン2が押された」→「ラジオボタン1のチェックが外れた」
でいいじゃん。

495 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 11:24:17 ]
メッセージは飛んでるよ
WindowProc使った方法は知らん

496 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:10:47 ]
>>493
>>494
説明が足りませんでしたが事情によりチェックが外れた瞬間のイベント駆動の処理が必要なんです
まだチェックオンの瞬間は、オンクリックで拾うことはできますが、
ラジオボタンの場合、他のボタンを押したときに勝手に外れるので、オンクリックでは拾えず
また、SetCheck関数などで変更されたときもオンクリックでは拾えませんし悩んでます。
クリックから、関数から、などの入力方法に関わらず、とにかく「チェックが切り替わったとき」の
イベントが欲しいのです…
例えばエディットボックスなら内容を変更されたときのイベントを取れるとおもうんですが、
考えてるのは「今変わった!」というのがわかる、そんなイメージです…

>>495
どういったメッセージか、もしわかればヒントだけでも教えてください><
できるだけ自分で調べるつもりですので

497 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 13:16:17 ]
オンクリック→正確にはBN_CLICKEDです

498 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 17:36:14 ]
>>496
ttp://msdn.microsoft.com/en-us/library/cc678956.aspx

499 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 18:11:09 ]
>>496
>ラジオボタンの場合、他のボタンを押したときに勝手に外れるので
ラジオボタンのプロパティでそういう風に設定しているからだろ。
リソースでラジオボタンをダブルクリックしたときに作られる関数で、
SetCheckする前にチェックの状態が変わったかどうか自分で調べれば解決。

500 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 20:45:55 ]
>>494と似た考え方だが


とりあえずそのグループのラジオボタンのイベントを一箇所で捕まえて
今回選択されたラジオボタンと前回で選択されたラジオボタンが異なっていたら、
「前回選択されたラジオボタンのチェックが外れた」
と考えればいいと思う。

なんとなく>>496はWindowProcとか言ってるからMFCじゃない気もするが、
MFCならON_COMMAND_RANGE使って10行も必要ないから
とりあえずダメ元で試してみたら?

501 名前:名無し募集中。。。 mailto:sage [2008/10/18(土) 23:14:23 ]
話それるけどON_COMMAND_RANGEで扱うために
リソースIDを連続させるためにresource.hを編集しちゃう俺はヘタレですか?

502 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 03:21:49 ]
いいんじゃない?
ID指定するとき、=つけて数値指定できるけど、面倒だもんね。



503 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 22:43:58 ]
ON_COMMAND_EXを使えば、IDを引数にとるハンドラを作れるから、
リソースIDが飛び飛びでも一つのハンドラにまとめられるけど、
こっちはあまり使われないのかな。

504 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 11:17:02 ]
MFCを使う標準DLLを作成すると
CWinAppを派生したアプリケーションクラスが用意されますが、
これはDLL内の単独のスレッドというわけではないのでしょうか?
OnIdle()をオーバーライドしてもコールされないのですが。

505 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 18:20:07 ]
んー、そのままだと自分のメッセージループは使わないからな。

506 名前:デフォルトの名無しさん [2008/10/21(火) 19:20:58 ]
すみません。他で聞いても返事が無いのでここできかせてください。

VC6で本の通りにブラウザとかつくりました。VC6の生成するブラウザだから
いまどきのWebページは開けないだろうと思っていたんですが、普通にうまくひらけました。Flushとかもです。

これは、VC6とはいえ、ブラウザエンジン?はいまどきのPCの最新のを(要するにIE7のを)
作成してくれるのでしょうか?

よろしく教えてください。

507 名前:506 mailto:sage [2008/10/21(火) 19:34:59 ]
元のスレを今見たら、今日の夕方に返答がきてました。
解決したので、>>506はスルーしてください。

508 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 02:18:54 ]
SDIでグラフ描画するソフトを作ろうとしてるんですが
ViewのOnDrawで縦軸横軸を引いて
その上にグラフを描画する方法がわかりません。
どなたか、わかる人教えてください。


509 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 06:44:33 ]
どこまでわかっててどこからわからないの?

510 名前:デフォルトの名無しさん [2008/10/23(木) 15:16:36 ]
VC6で、_MBCSを使い、日本語と英語のプログラムを作っています。
一つのEXEで問題なく、
日本語Win上では、日本語のダイアログ、
英語Win上では、追加した英語のダイアログが表示されたのですが、

現在選択しているリソースが日本語か英語か知りたいのですが、
プログラム実行時、
英語日本語のリソース切り替え選択はどの値を見て読み替えてるのでしょうか?

GetSystemDefaultLangID() 辺りは、コントロールパネルによって変化しているのは確認したのですが、
リソース読み替えとは関係ない様でした。
GetACP() , GetVersionEx()でも取得はできませんでした。
ご存知の方、ヒントだけでも御教授下さい。
よろしくお願いします。

511 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:32:35 ]
GetSystemDefaultUILanguageとかGetUserDefaultUILanguageあたりかね?
でも自分でFindResourceExする必要はある気がする。

512 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 15:44:51 ]
って動的に切り替えるのが目的じゃないのか



513 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:21:45 ]
ありがとうございます。
GetSystemDefaultUILanguage
も調べていたのですが、これはVC7以降のAPIの様です。
多分ですが、
GetSystemDefaultLangIDと同様、コントロールパネルのロケールIDを返すのではないかと思います。
コントロールパネルからロケールIDは変更できるのですが、
実行時に使用されるリソースは変化ありませんでした。

現在の状態が知りたいだけですので、動的に読み替える必要は今のところありません。

どうしても・・・となれば、リソースに番号振って、プログラム中から判定するという方法もあるのですが、
Kernel32あたりで、どう判断しているのかが知れればと思った次第です。

514 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 16:26:19 ]
winnls.h インクルードして使えないか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<186KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef