Test
Win32デスクトップアプリから、print_file_text_cstdioを呼び出す。 メニューリソースを追加し、resource.hを、こうして、file_utility_cstdio.rcを、こうする。 MainWindow.hで、"resource.h"のインクルード追加、OnFileSaveハンドラも追加。 MainApplicati…
Windowsでもやってみた。 file_utility_cstdio.hで、こう書く。 file_utility_cstdio.cは、こう書く。 main.cppは、こう書く。 実行すると、 こうなって、こうなって、 test1.txtはこうで、test1.txtはこうで、 test2.txtはこうなる。test2.txtはこうなる。T…
print_file_text_cstdioを、C++から呼び出してみる。 file_utility_cstdio.hは、こう書く。 file_utility_cstdio.cは、こう書く。 main.cppは、こう書く。 C++からC言語関数を呼び出せるように、extern "C"でヘッダファイルをインクルードしてる。 それぞれ…
print_file_text_cstdioを、Windowsでもやってみた。 main.cで、と書く。 ロケールを設定しない場合や、"C"ロケールの場合などで、日本語がどうなるか追加でテスト。 最近のVSは_CRT_SECURE_NO_WARNINGSが必要。最近のVSは_CRT_SECURE_NO_WARNINGSが必要。 …
freadベースのread_file_text_cstdioを定義。 main.cで、と書く。 NULL文字('\0')の先も読み込まれている。NULL文字('\0')の先も読み込まれている。 しかも、NULL文字('\0')のところ、変な文字も入らないね。Test/c/read_file_text_cstdio/read_file_text_cs…
fwriteベースのwrite_file_text_cstdioを定義。 main.cで、と書く。 実行するとこうなって、test1.txtを開くと、実行するとこうなって、test1.txtを開くと、 NULL文字('\0')の先も書き込まれる。NULL文字('\0')の先も書き込まれる。 test2.txtも同様。test2.…
fgetsベースのget_file_text_cstdioを定義。 main.cで、と書く。 test1.txtはこうする。test1.txtはこうする。 test2.txtは、バイナリエディタで00の部分を作る。test2.txtは、バイナリエディタで00の部分を作る。 スペースは切れないが、改行を含めたところ…
fputsベースのput_file_text_cstdioを定義。 main.cで、と書く。 こうなるので、test1.txtを開く。こうなるので、test1.txtを開く。 fputsなので、スペースや改行は出力されるが、'\0'の後は切れてしまう。fputsなので、スペースや改行は出力されるが、'\0'…
C標準入出力ライブラリ関数でテキストファイル入力するscan_file_text_cstdioを定義。 main.cで、と書くと、 fscanfをベースにしてるので、スペースや改行で切れてしまう仕様は織り込み済み。fscanfをベースにしてるので、スペースや改行で切れてしまう仕様…
C標準入出力ライブラリ関数でテキストファイル出力するprint_file_text_cstdioを定義。 main.cで、と書くと、 実行すればこうなって、test1.txtを開くと、実行すればこうなって、test1.txtを開くと、 ロケール指定してないが、iso-2022-jp。ロケール指定して…
ファイルサイズ取得関数get_file_sizeを定義する。 main.cで、と書くと、 改行が入ると、ファイルサイズは6かな。改行が入ると、ファイルサイズは6かな。Test/unixsyscall/get_file_size/get_file_size/src/get_file_size at master · bg1bgst333/Test · Git…
CWindow::MoveWindowで、ウィンドウの位置とサイズを変更する。 Window.cppで、Win32APIのMoveWindowで指定の位置とサイズをセット。 MainWindow.cppで、CEditCoreを置いて、エディットボックスのサイズをメインウィンドウのクライアント領域に合わせる。 ウ…
ウィンドウのサイズを変更された時に発生するハンドラCWindow::OnSizeを実装する。 Window.hで、OnSize追加。 Window.cppのDynamicWindowProcで、WM_SIZEでOnSizeに引数渡す。ここは何も実装しない。 MainWindow.hにも、OnSize実装。 MainWindow.cppでは、渡…
CPicture::OnVScrollで垂直方向スクロールバーも実装する。 Picture.hで、OnVScrollと、変化量を表すm_dyを追加。 Picture.cppで、OnVScrollを実装。OnPaintも垂直成分を追加。ビットマップサイズの取得とスクロールバーの初期化をSetBitmapに移動。 MainWin…
CPicture::OnHScrollを実装して、水平方向にビットマップをスクロールできるようにする。 Picture.hは、OnHScrollを追加。 またprivateで水平方向の変化量m_dxも追加。 Picture.cppで、再描画処理と水平方向スクロール処理。 MainWindow.cppは、ビットマップ…
CPicture::Createを実装する。 Picture.hに、第1引数がウィンドウ名のCreateを追加。 Picture.cppで、CPicture::Createの中では、CUserControl::Createで、ウィンドウクラス名は"CPicture"とする。 MainWindow.cppで、ピクチャーコントロールの生成に加えて…
改めて、CPictureをCUserControlの派生クラスとして作り直し、今回はCPicture::RegisterClassも実装する。 Picture.hで、CUserControlを継承元とする。 Picture.cppで、CStaticCoreだったところはCUserControlに。RegisterClassを呼ぶと、"CPicture"でウィン…
現行のCPictureにスクロール機能を実装しようと調査したら、いろいろ問題があったので、書いていく。 まず、メニュー付きのウィンドウにスクロールバー付けて、水平方向スクロールバーの位置、垂直方向スクロールバーの位置をOnPaint時に描画するだけの場合…
CWindow::OnHScrollで、水平方向スクロールバーの制御をする。 Window.hで、OnHScrollを追加。 Window.cppでは、DynamicWindowProcで、WM_HSCROLLでOnHScrollを呼ぶようにして、OnHScrollは、水平方向スクロールバー処理。 MainWindow.cppでは、OnCreateでス…
CWindow::OnVScrollで、垂直方向スクロールバーの制御をする。 Window.hで、OnVScrollを追加。 Window.cppでは、DynamicWindowProcで、WM_VSCROLLでOnVScrollを呼ぶようにして、OnVScrollは、垂直方向スクロールバー処理。 MainWindow.cppでは、OnCreateでス…
CPicture::SetBitmapでビットマップをセットして、CPicture::OnPaintで表示する。 CStaticCoreとは違い、BitBltなどを使って描画する。 Picture.hは、SetBitmap、m_hBitmap、m_hOldBitmapを追加。 Picture.cppだが、SetBitmapは、このようにSelectObjectでm_…
CPicture::OnCreateで、デバイスコンテキスト関連の準備をする。 Picture.hで、OnCreateを追加。 Picture.cppで、GetDCでm_hDCを取得したら、それを使って今度はCreateCompatibleDCでm_hMemDCを生成する。 m_hDCを取得できたm_hDCを取得できた。 m_hMemDCも…
まず先に、CPicture::Destroyを実装する。 Picture.hは、メンバ関数Destroyを追加。 Picture.cppで、m_hMemDCはDeleteDCで破棄、m_hDCはReleaseDCで解放。 これが表示されて、閉じた後に、これが表示されて、閉じた後に、 ここにきて、ここにきて、 ここにき…
コンストラクタなどを追加する。 Picture.hは、コンストラクタ、デストラクタ、デバイスコンテキストハンドルm_hDC、メモリデバイスコンテキストハンドルm_hMemDCを追加。 Picture.cppは、コンストラクタで、m_hDCとm_hMemDCの値をNULLで初期化。 OnPaintで…
CPictureクラスを実装するが、まずはOnPaintから。 Picture.hは、OnPaintのみ。 Picture.cppは、OnPaintでは、TextOutで"CPicture"と描画。 あとはMainWindow.hで、CStaticCoreをCPictureに替えて、MainWindow.cppで、こちらもCPictureに。 こうなるこうなる…
CCustomControl::OnPaintを実装して、描画動作を変えてみる。 その前に、 これを置いておいてこれを置いておいて、MainWindow.cppで、これだけだったら、 bitmap1.bmpが表示されるbitmap1.bmpが表示される。 CustomControl.hで、OnPaintを追加し、 CustomCon…
ウィンドウの描画を要求された時のハンドラCWindow::OnPaintを実装する。 Window.hで、を追加。 Window.cppで、ここは何もしない。 DynamicWindowProcでは、こうしておく。 MainWindow.hにも、OnPaint追加。 MainWindow.cppは、TextOutで"CWindow"と描画して…
ビットマップリソースではなく、ビットマップファイルをロードするようにする。 Bitmap.hで、LoadImageを追加。 引数はWin32APIのLoadImageと一緒のバージョンにする。 Bitmap.cppは、Win32APIのLoadImageを呼んでいる。 MainWindow.cppで、CBitmap::LoadIma…
CStaticCore::SetBitmapでビットマップをセットする。 リソース追加リソース追加。 BitmapをインポートBitmapをインポート。 以前のこれをインポート以前のこれをインポート。 これが出るけど、「はい」で。これが出るけど、「はい」で。 これも「はい」これ…
HBITMAP演算子でビットマップハンドルを取り出すようにする。 Bitmap.hは、m_hBitmapをprivateにして、publicにHBITMAP演算子を追加。 Bitmap.cppは、HBITMAP演算子は、m_hBitmapを返すだけ。 MainWindow.cppは、取り出し方が、m_pBitmap->m_hBitmapから、(H…