|
|
≪MDIクライアントウィンドウのハンドル取得≫ |
| CMDIFrameWndのpublic変数、m_hWndMDIClientで取得 |
|
≪サスペンドの検出≫ |
| サスペンド関係は、WM_POWERBROADCASTメッセージにより検出可能 サスペンド不可とするには、wParamがPBT_APMQUERYSUSPENDでBROADCAST_QUERY_DENYを返せばよい |
|
≪アプリケーションとDLLのリソースが衝突する≫ |
| DLL中のエントリで、AFX_MANAGE_STATE(AfxGetStaticModuleState())を記述し、リソースを切り替える |
|
≪左下原点でサイズ可変なビュー≫ |
| CSize size = 描画サイズ CRect rectClient; GetClientRect(rectClient); pDC->SetMapMode(MM_ANISOTROPIC); pDC->SetWindowExt(size.cx size.cy); pDC->SetViewportExt(rectClient.Width() -rectClient.Height()); pDC->SetViewportOrg(0 rectClient.Height());
|
|
≪ポップアップメニューを使うとき必須≫ |
| SetForegroundWindow(); SetFocus(); menu.TrackPopupMenu(・・・・・・・・・・・・); PostMessage(WM_NULL); // これをしなければ、ダイアログボックスが動作しない |
|
|
|
≪スクロールレンジの上限≫ |
| ThumtrackのnPosがshortで帰ってくるため、-32768〜32767の範囲しかない |
|
≪SetScrollRangeだとつまみの大きさが変わらない≫ |
| SetScrollInfoを使用する |
|
≪ファイルの書き込みタイミング≫ |
| 書き込みやフラッシュの関数から帰る前に書き込みは終了している可能性がある |
|
≪NTかの確認≫ |
| OSVERSIONINFO ovi; ovi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO); ::GetVersionEx(&ovi); m_bNT = (ovi.dwPlatformId == VER_PLATFORM_WIN32_NT); |
|
≪プロセスとスレッドのプライオリティ変更≫ |
| ::SetPriorityClass(::GetCurrentProcess() プライオリティ識別子); ::SetThreadPriority(::GetCurrentThread() プライオリティ識別子);
|