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

子ウィンドウにWM_MOUSEWHEELが来ない、受け取れない、処理できない時

チャイルドウィンドウにWM_MOUSEWHEEL(マウスホイールが回されたときのウィンドウメッセージ)が渡されない事がある。 親ウィンドウには届くんだけど、本命の子ウィンドウには届かない、そんな時。 結論 SetFocus( HWND); を使って、子ウィンドウにフォーカス…

CreateCompatibleBitmapの限界とCreateDIBSection

前置き わりとメモのような位置づけです。自分でもあまり理解していません。 CreateCompatibleBitmapでオフスクリーンバッファを作っていたが、大きいビットマップを作れないから、CreateDIBSectionを利用する事にした。 CreateDIBSectionなら巨大なビットマ…

あまりにも大雑把だけど画像ビュアーになった

追加した機能 拡大している際にスクロールバーをつけた こうしないと、マウスでつかんで移動するときに、どこまで動かせるのかわかりずらい。 タイトルバーにファイル名を表示するようにした どうせならすぐ上のディレクトリ名も表示した方が使いやすいかも…

ウマ耳画像あります

画像の拡大と縮小とスクロールができるようになりました クリックして画像をつかみ、カーソルを動かす事によってスクロールができます。 またマウスホイールで拡大縮小ができるようになりました。 ちょっとやりにくいですが、それらを同時に行うことも可能で…

クリティカルセクションに出たり入ったりするクラス

Effective C++ 第3版のを真似たつもりです。あの本ではミューティックスですが。 ソース #include <windows.h> // クリティカルセクションに出たり入ったりするクラス class CLock { public: CLock( CRITICAL_SECTION *c) : m_critsec(c), m_unlocked(false) { ::EnterC</windows.h>…

ちらつき防止 BitBlt winapi クラス化

BitBltとはそもそも BIT BLock Transfer から、BitBltだそうです。*1 使い方 この質問サイトに書いてあるサンプルが一番いいでしょうか。 http://oshiete1.goo.ne.jp/qa3052870.html こちらのを改造して使っています。実を言うとよく理解していません。 ちょ…

ひどいミス

そっち系のひどいミスをここに書いていこうかと思います。 if( ) + セミコロン if(m_rcSrc.Height <= 0); m_rcSrc.Height = 1; もし高さが0以下なら、それを1にする予定でした。 しかしちゃんとインデントもされているのに、ifのカッコの終わりにセミコロン…

エクスプローラのビュアの拡大機能についてわかったこと

上にマウスホイールを回すと拡大する ウィンドウに表示しきれなくなるとスクロールバーが付く ホイールボタンを押しながらカーソルを動かすと移動できる(スクロールバーが付いてる時) 画像のサイズはホイールを回すごとに1.2倍になる(コントロールパネル…