WindowsAPI

WM_KILLFOCUS

フォーカスが失われる直前、WM_KILLFOCUSが発生する。WM_KILLFOCUS メッセージ (Winuser.h) - Win32 apps | Microsoft LearnWM_KILLFOCUS.cppで、として、 最初はこう。最初はこう。 VSのウィンドウに行くとこうなるVSのウィンドウに行くとこうなる。 メイン…

WM_SETFOCUS

フォーカスがセットされた時、WM_SETFOCUSが発生する。WM_SETFOCUS メッセージ (Winuser.h) - Win32 apps | Microsoft LearnWM_SETFOCUS.cppで、WM_SETFOCUS発生したら、hwndとwParam出してみる。 意外にも、起動時は来ない。意外にも、起動時は来ない。 い…

ShowCaret

ShowCaretでキャレットを表示状態にする。ShowCaret 関数 (winuser.h) - Win32 apps | Microsoft LearnShowCaret.rcに、Item6-2を追加。 ShowCaret.cppで、ShowCaretでhEditのキャレットを表示状態にする。 最初はこう最初はこう。 tと1の間にキャレットを置…

HideCaret

HideCaretでキャレットを非表示にする。HideCaret 関数 (winuser.h) - Win32 apps | Microsoft LearnHideCaret.rcに、Item6, Item6-1を追加。 HideCaret.cppで、HideCaretでhEditのキャレットを非表示にする。 BとCの間にキャレットを置いておく。BとCの間に…

EM_REPLACESEL

EM_REPLACESELで、選択範囲のテキストを指定のテキストに置換する。EM_REPLACESEL メッセージ (Winuser.h) - Win32 apps | Microsoft LearnEM_REPLACESEL.rcで、Item5-3を追加。 EM_REPLACESEL.cppで、Item5-3を選択すると、選択範囲を"XYZ"に置換する。 こ…

EM_SETSEL

EM_SETSELで、選択範囲の開始位置と終了位置を設定する。EM_SETSEL メッセージ (Winuser.h) - Win32 apps | Microsoft LearnEM_SETSEL.rcで、Item5-2を追加。 EM_SETSEL.cppで、決めうちで、選択班を0から2までとする。 最初こう選択する最初こう選択する。 …

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…