2000年4月のエントリ

Install Shield3 だが,コンパイルしようとすると

Unable to get current directory

というエラーがでる。どうやらディレクトリ名が長すぎるようなので,ルートディレクトリとかでやったらうまくいった。

某ウィルスチェッカ問題(2000/02/03 参照)だが,ようやくメーカーさんから再登録のメールが来た。早速該当ページへ行き,登録。が,以下のエラーが出た。

Microsoft OLE DB Provider for ODBC Drivers エラー '80040e31' 

[Microsoft][ODBC SQL Server Driver]時間切れになりました。 

/vbr/process.asp, 行 110 

時間切れのようである。結局何度かやってうまくいったのだが,相変わらずエラーの意味が専門家以外には分かりづらい。まあ登録はできたからよしとしよう。

CButton にビットマップを貼り付けていたのだが,Windows2000 で見ると背景色がダイアログの背景と違う。Win98 と Win2000 で微妙に色が変わっていた訳だが,結局

CBitmap::LoadBitmap() で CButton に CButton::SetBitmap()

していたのを

CBitmap::LoadMappedBitmap() (引数はデフォルト)

に変えることで背景がきちんと対応するシステムカラーに置き換えられた。

(とりあえず 16 色ビットマップだけしか試してないが。)


CWnd 派生クラスで WM_CHAR が送られてこないで困る。実際には BackSpase とかを押すと警告が鳴る。詳しくは調べてないが,結局 MFC が WM_CHAR をとっているからで,PreTranslateMessage で WM_CHAR を横取ることで解決。

でも昔 CView でやったときは大丈夫だったのだが。