MFC でドキュメントを保存するかを聞くダイアログボックスを出す方法。CDocument::SaveModified を呼び出す。
だったが,その後 CWinApp::OpenDocumentFile を直接呼び出すことでファイルを開くという目的は達せられたので使わなかった。
エディタ。SHIFT を押していないのに選択されてしまうというバグにずっと悩んでいたが,問題らしき箇所がやっと見つかった。
if(::GetAsyncKeyState(VK_SHIFT))
となっていたのだが,正しくは
if(::GetAsyncKeyState(VK_SHIFT) < 0)
というか今まで正しく使っていたのだが,何故か今回はこうなっていた。これで直るといいんだが,必ず再現する方法が見つからないため確かめられない。
# でいいようだ。
ユーザー定義メッセージ。コンボボックス内のエディットコントロールをサブクラス化し,WM_KILLFOCUS をユーザー定義メッセージでコンボボックスに通知しようとする。が,メッセージが流れてこない。でいろいろ調べてみると,ユーザー定義メッセージの WM_USER + n は MFC がいくつか使用しているとのこと。これをバーンと WM_USER + 1000 にしたら無事動いた。でも前作ったやつは WM_USER + 1 で動いてたんだけど。まあいいか。
# ::RegisterWindowMessage を使用した方がよい。