ドナドナされるプログラマのメモ

Windows用アプリのプログラミングメモ

2020-03-01から1ヶ月間の記事一覧

重いイベントハンドラの処理状況をダイアログで表示する

背景 重い処理の進捗状況をダイアログで表示する場合、自分がよくやるのは 進捗状況を示すモードレスダイアログを作成 重い処理をAfxBeginThread()により別のワーカースレッドとして起動 モードレスダイアログは適宜タイマによって状況を更新 モードレスダイ…

CListViewにポップアップメニューを追加したけどON_UPDATE_COMMAND_UIが送られてこない件について

事象 CListViewにポップアップメニューを追加し、条件に応じてメニューのEnable/Disableを切り替えようとMFCの流儀に則りON_UPDATE_COMMAND_UIのハンドラを追加した。しかし、ポップアップメニュー表示時になぜかON_UPDATE_COMMAND_UIが来ない。 原因 CListV…

ダイアログバー上のエディットボックスから文字列を取得する方法

ダイアログバー上のエディットボックスから文字列を取得するのにちょっと苦労したのでメモ。 問題の背景 ダイアログを作る場合、通常はCDialog等を継承した、そのダイアログ固有のクラスを作成する。しかしMicrosoft曰く、CDialogBarは通常固有のクラスを作…

mozjpegをつかった画像変換ソフトの開発 その8

mozjpegを多並列で実行するGUIを備えた画像変換ソフト、無事Vectorにて公開。 www.vector.co.jp そのうち、英語版もどこかで公開予定だけど、どこにしよう?Vectorってどう見ても国内オンリーなのよね。英語ページを作れる気がしない。 2020/04/24追記 githu…

CDocumentからCViewを取得する一例

今時ドキュメントビューアーキテクチャなんて人は居ないだろうけど、メモ。 CDocumentからCViewにメッセージを投げたいときや関数を直接呼び出したいときに困るのが、CViewのアドレス取得方法。特に、自分はCSplitterWndを多用したためCViewが複数あり決め打…

CArchive::ReadString, CArchive::WriteStringの罠

CArchive::ReadString()とCArchive::WriteString()を使って文字列を読み書きしようとしたら文字化けしてハマったのでメモ。 以下のようなコードを書いたら、読み込み時に文字化けした。 void Serialize(CArchive &ar){ TCHAR path[MAX_PATH+1]; if(ar.IsStor…

リソースエディタがWS_EX_COMPOSITEDを認識しない

とあるリソースをVisual Studio2019で開こうとしたら、error RC2104: undefined keyword or key name: WS_EX_COMPOSITED というエラーが出た。 error RC2104: undefined keyword or key name: WS_EX_COMPOSITED でも、おかしい。このキーワードはWindowsに存…

スキャナ設定のメモ

Canon DR-M200でモノクロ原稿を読む場合の設定メモ。 基本 明るさ 画像処理 画質調整 MozJpegGUIの設定