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構造体を取得でき、そこから幅と高さを取得できる。 …

CWnd::OnHScroll

MFC

CWnd::OnHScrollイベントハンドラを追加して、水平スクロールバーの動きも実装する。CWnd クラス | Microsoft Learn これを選択してこれを選択して、 ここに貼り付けるここに貼り付ける。 これでハンドラ追加これでハンドラ追加。 あとは、こうして、こう。 …

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を新規作成。…

CStatic::SetBitmap

MFC

CStatic::SetBitmapで、スタティックコントロールにビットマップをセットする。CStatic クラス | Microsoft Docs resの下にbitmap1.bmpを置いて、resの下にbitmap1.bmpを置いて、 リソースリソース、 BitmapをインポートBitmapをインポート。 bitmap1.bmpをI…

CBitmap::operator HBITMAP

MFC

HBITMAP演算子で、ロードされたビットマップのビットマップハンドルを取得できる。CBitmap クラス | Microsoft DocsCBitmapDlg.cppで、取得したhBitmapも表示する。 成功成功。 hBitmapの値はこれhBitmapの値はこれ。 で、ダイアログが出る。で、ダイアログ…

CBitmap::LoadBitmap

MFC

CBitmap::LoadBitmapで、登録済みビットマップリソースを読み込む。CBitmap クラス | Microsoft Docsビットマップファイルではなく、リソースとして登録したビットマップリソースなのがポイント。 (ビットマップファイルの場合は、ちょっと面倒くさい。) プ…

CStatic::Create

MFC

CStatic::Createで、スタティックコントロールのウィンドウを作成する。CStatic クラス | Microsoft DocsCStaticDlg.hで、CWndポインタのm_pStatic1、CStaticポインタのm_pStatic2を追加。 CStaticDlg.cppで、このように書く。 CStaticのCreateはリソースID…

CEdit::Create

MFC

CEdit::Createで、エディットコントロールのウィンドウを作成する。CEdit Class | Microsoft DocsCEditDlg.hで、CWndポインタのm_pEdit1、CEditポインタのm_pEdit2を追加。 CEditDlg.cppで、このように書く。 CEditのCreateはウィンドウ名も不要。 どちらも…

CButton::Create

MFC

CButton::Createで、ボタンのウィンドウを作成する。 CButtonクラスのCreateなので、ウィンドウクラス名は不要。CButton クラス | Microsoft DocsCButtonDlg.hで、CWndのm_pButton1に加えて、CButtonのm_pButton2を追加。 CButtonDlg.cppでは、どちらもCreat…