WindowsAPI

EM_GETSEL

EM_GETSELで、選択範囲の開始位置と終了位置を取得する。EM_GETSEL メッセージ (Winuser.h) - Win32 apps | Microsoft LearnEM_GETSEL.rcで、Item5とItem5-1を追加。 EM_GETSEL.cppで、wParamにlStartのアドレス、lParamにlEndのアドレスを渡してる。 "ABCDE…

SHGetSpecialFolderPath

SHGetSpecialFolderPathで、特殊フォルダのパスを取得する。SHGetSpecialFolderPathW 関数 (shlobj_core.h) - Win32 apps | Microsoft LearnSHGetSpecialFolderPath.rcで、Item4とItem4-1を追加。CSIDL_PROFILEは、このユーザのプロファイルフォルダ。 Item4…

EM_LINEINDEX

EM_LINEINDEXは、指定の行の先頭までの文字数を取得。EM_LINEINDEX メッセージ (Winuser.h) - Win32 apps | Microsoft LearnEM_LINEINDEX.cppで、こうすることで、キャレットの位置を行と列で表せることができる。 キャレットをGとHの間に置く。キャレットを…

EM_CHARFROMPOS

GetCaretPosだと座標なので、EM_CHARFROMPOSを使って何行目か、とか、何番目の文字か、とか、そういう情報に変換する。EM_CHARFROMPOS メッセージ (Winuser.h) - Win32 apps | Microsoft LearnEM_CHARFROMPOS.rcで、Item3-1を追加。 EM_CHARFROMPOS.cppで、E…

GetCaretPos

GetCaretPosでキャレットの位置を取得する。GetCaretPos 関数 (winuser.h) - Win32 apps | Microsoft Learnメニューリソースに、Item2-2を追加。 GetCaretPos.cppでは、Item2-2が選択されたら、GetCaretPosでキャレット位置を取得して表示。 渡したPOINT構造…

WM_GETFONT

WM_GETFONTで、フォントハンドルを取得する。WM_GETFONT メッセージ (Winuser.h) - Win32 apps | Microsoft Learnメニューリソースに、Item2と、その下のItem2-1を追加。 WM_GETFONT.cppでは、Item2-1が選択されたら、フォントハンドルと文字の高さを表示。 …

WM_SETFONT

WM_SETFONTで、エディットボックスなどのフォントを切り替えることができる。WM_SETFONT メッセージ (Winuser.h) - Win32 apps | Microsoft Learnメニューリソースを追加して、こんな感じ。 WM_SETFONT.cppは、2つのフォントを用意して、まずはhEditにhFont1…

GetParent

GetParentで、親ウィンドウのハンドルを取得する。GetParent 関数 (winuser.h) - Win32 apps | Microsoft LearnGetParent.cppで、生成した後のhWnd、WM_CREATEでのhwnd、hwndを親とするエディットコントロールハンドルhEdit、hEditからGetParentで取得したhP…

TEXTMETRIC

TEXTMETRIC構造体には、フォントの基本情報が格納されている。TEXTMETRICA (wingdi.h) - Win32 apps | Microsoft Learnフォントの高さに加えて、フォントの平均幅、最大幅も描画してみる。 TEXTMETRIC.cppで、こうすると、 こう描画される。こう描画される。…

GetTextMetrics

GetTextMetricsで、指定されたデバイスコンテキストに描画するテキストの詳細情報を取得する。GetTextMetrics 関数 (wingdi.h) - Win32 apps | Microsoft Learn 改行するGetTextMetrics.cppで、GetTextMetricsで、TEXTMETRIC構造体tmを取得する。 tm.tmHeigh…

OPENFILENAME

ファイル選択をするときは、OPENFILENAME構造体をGetOpenFileNameなどに渡す必要がある。OPENFILENAMEA (commdlg.h) - Win32 apps | Microsoft Learnどれくらい最低限渡せば動くのか。 // メニュー項目が選択されたり, ボタンなどのコントロールが押されたり…

BITMAP構造体

BITMAP構造体に、ビットマップの幅、高さ、形式、色書式などの情報が含まれる。BITMAP (wingdi.h) - Win32 apps | Microsoft LearnBITMAP_struct.cppで、bmBitsPixel以外の要素を表示してみる。 左クリックで、 こうなっている。こうなっている。 32bitビッ…

GetObject

GetObjectで、GDIオブジェクトハンドルから、GDIオブジェクト情報を持つ構造体を取得できる。GetObject function (wingdi.h) - Win32 apps | Microsoft LearnビットマップハンドルHBITMAPを渡せば、BITMAP構造体を取得でき、そこから幅と高さを取得できる。 …

GetUpdateRect

GetUpdateRectで、InvalidateRectなどで指定されたりして出来た無効領域のRECTを取得できる。GetUpdateRect function (winuser.h) - Win32 apps | Microsoft LearnScrollWindowでスクロールして出来た白い描画されてない領域のRECTを、InvalidateRectに指定…

SCROLLINFO

SCROLLINFOは、スクロール情報を持つ構造体。SCROLLINFO (winuser.h) - Win32 apps | Microsoft LearnSCROLLINFO.cppで、RECTの計算も、WM_HSCROLLの項では間違っていたので修正したし、コードが複雑になっていたので、ちょっと整理した。 起動時起動時。 左…

RECT

RECTは、矩形の左端、右端、上端、下端、を表す構造体。RECT (windef.h) - Win32 apps | Microsoft LearnGetWindowRectでウィンドウのRECTが取得できるので、そこから幅と高さを計算する。で、勘違いしてたんだけど、幅widthはrc.right - rc.left, 高さheigh…

POINT

POINTは、位置(x, y)を指定するときに使う構造体。POINT (windef.h) - Win32 apps | Microsoft LearnGetCursorPosの項で、ウィンドウメッセージが来てない時に、マウスカーソルの座標を描画するようなプログラムを作ったが、WindowFromPointをさらに使えば、…

WindowFromPoint

WindowFromPointで、指定されたPOINT構造体の指す位置にあるウィンドウのハンドルを取得できる。WindowFromPoint 関数 (winuser.h) - Win32 apps | Microsoft LearnWindowFromPoint.cppにて、メインとなるウィンドウ表示前に、ウィンドウハンドルを表示。WM_…

ClientToScreen

ClientToScreenで、指定されたクライアント座標をスクリーン座表に変換する。ClientToScreen 関数 (winuser.h) - Win32 apps | Microsoft Learn座標はPOINT構造体を使って渡す。 WM_LBUTTONDOWNで得られるクリックされた座標はクライアント座標。 これをスク…

UpdateWindow

UpdateWindowで画面を更新する。UpdateWindow 関数 (winuser.h) - Win32 apps | Microsoft LearnInvalidateRectで無効領域が作られればWM_PAINTが送られて更新されるが、これはタスクが無いアイドル状態だからであり、処理が忙しい時はなかなか更新されない…

WM_HSCROLL

WM_HSCROLLをやってなかったので、ここのイベント時の処理も書いて、水平方向にもスクロールしてみる。WM_HSCROLL メッセージ (Winuser.h) - Win32 apps | Microsoft LearnWM_HSCROLL.cppで、左クリック時の初期化で、水平方向分の設定も追加。WM_HSCROLLに…

ScrollWindow

ScrollWindowでクライアント領域をスクロールする。ScrollWindow 関数 (winuser.h) - Win32 apps | Microsoft Learnこれまでは、WM_PAINT時のBitBltで描画する範囲をスクロールごとに変えていく方法を取っていた。 しかし、どうもScrollWindowを使えば、WM_P…

STM_SETIMAGE

ウィンドウメッセージSTM_SETIMAGEで、スタティックコントロールにビットマップをセットできる。STM_SETIMAGE message (Winuser.h) - Win32 apps | Microsoft Learnプロジェクト作成後、 リソースを追加リソースを追加。 Bitmapを新規作成Bitmapを新規作成。…

SetupDiGetClassDevs

SetupDiGetClassDevsは、指定されたGUIDのデバイスクラスのデバイス情報ハンドルを取得する。SetupDiGetClassDevsW function (setupapi.h) - Win32 apps | Microsoft Docsボリュームデバイスクラスのデバイス情報ハンドルを取得する。 SetupDiGetClassDevs.c…

DEV_BROADCAST_VOLUME

dbch_devicetypeが、DBT_DEVTYP_VOLUMEなら、DEV_BROADCAST_HDRポインタをDEV_BROADCAST_VOLUMEポインタにキャストできる。DEV_BROADCAST_VOLUME (dbt.h) - Win32 apps | Microsoft Docs USBメモリーの挿入などを検出する(UsefullCode.net)今度は、DEV_BROAD…

DEV_BROADCAST_HDR

DBT_DEVICEARRIVALや、DBT_DEVICEREMOVECOMPLETEの時、lParamにはDEV_BROADCAST_HDR構造体のポインタが渡される。DEV_BROADCAST_HDR (dbt.h) - Win32 apps | Microsoft Docs渡されたlParamをDEV_BROADCAST_HDR構造体ポインタにキャストして各要素を見てみる…

DBT_DEVICEREMOVECOMPLETE

デバイスの削除が完了した時、DBT_DEVICEREMOVECOMPLETEが発生する。DBT_DEVICEREMOVECOMPLETE event (Dbt.h) - Win32 apps | Microsoft DocsDBT_DEVICEREMOVECOMPLETE.cppで、とする。 USBデバイスを接続すると、 "DBT_DEVICEARRIVAL"が発生するが、"DBT_DE…

DBT_DEVICEARRIVAL

デバイスが接続され使用可能になった時、DBT_DEVICEARRIVALが発生する。DBT_DEVICEARRIVAL event (Dbt.h) - Win32 apps | Microsoft DocsDBT_DEVICEARRIVAL.cppで、とする。 USBデバイスを接続すると、 これが紛れているこれが紛れている。 抜いた時は、 こ…

DBT_DEVNODES_CHANGED

WM_DEVICECHANGEで、さらにwParamがDBT_DEVNODES_CHANGEDの時は、デバイスノードが変更になった時。DBT_DEVNODES_CHANGED event (Dbt.h) - Win32 apps | Microsoft DocsDBT_DEVNODES_CHANGED.cppで、wParamがDBT_DEVNODES_CHANGEDなら、MessageBoxで"DBT_DEV…

WM_DEVICECHANGE

WM_DEVICECHANGEは、デバイスの状態が変化した時に通知される。WM_DEVICECHANGE メッセージ (Winuser.h) - Win32 apps | Microsoft Docs具体的には、例えばUSBデバイスが接続された時などである。 WM_DEVICECHANGE.cppで、とする。 起動すると、最初はこう。…