Test

print_file_text_cstdio(Win32デスクトップアプリでの使用)

Win32デスクトップアプリから、print_file_text_cstdioを呼び出す。 メニューリソースを追加し、resource.hを、こうして、file_utility_cstdio.rcを、こうする。 MainWindow.hで、"resource.h"のインクルード追加、OnFileSaveハンドラも追加。 MainApplicati…

print_file_text_cstdio(C++からの呼び出し(Windows))

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++からの呼び出し)

print_file_text_cstdioを、C++から呼び出してみる。 file_utility_cstdio.hは、こう書く。 file_utility_cstdio.cは、こう書く。 main.cppは、こう書く。 C++からC言語関数を呼び出せるように、extern "C"でヘッダファイルをインクルードしてる。 それぞれ…

print_file_text_cstdio(Windows)

print_file_text_cstdioを、Windowsでもやってみた。 main.cで、と書く。 ロケールを設定しない場合や、"C"ロケールの場合などで、日本語がどうなるか追加でテスト。 最近のVSは_CRT_SECURE_NO_WARNINGSが必要。最近のVSは_CRT_SECURE_NO_WARNINGSが必要。 …

read_file_text_cstdio

freadベースのread_file_text_cstdioを定義。 main.cで、と書く。 NULL文字('\0')の先も読み込まれている。NULL文字('\0')の先も読み込まれている。 しかも、NULL文字('\0')のところ、変な文字も入らないね。Test/c/read_file_text_cstdio/read_file_text_cs…

write_file_text_cstdio

fwriteベースのwrite_file_text_cstdioを定義。 main.cで、と書く。 実行するとこうなって、test1.txtを開くと、実行するとこうなって、test1.txtを開くと、 NULL文字('\0')の先も書き込まれる。NULL文字('\0')の先も書き込まれる。 test2.txtも同様。test2.…

get_file_text_cstdio

fgetsベースのget_file_text_cstdioを定義。 main.cで、と書く。 test1.txtはこうする。test1.txtはこうする。 test2.txtは、バイナリエディタで00の部分を作る。test2.txtは、バイナリエディタで00の部分を作る。 スペースは切れないが、改行を含めたところ…

put_file_text_cstdio

fputsベースのput_file_text_cstdioを定義。 main.cで、と書く。 こうなるので、test1.txtを開く。こうなるので、test1.txtを開く。 fputsなので、スペースや改行は出力されるが、'\0'の後は切れてしまう。fputsなので、スペースや改行は出力されるが、'\0'…

scan_file_text_cstdio

C標準入出力ライブラリ関数でテキストファイル入力するscan_file_text_cstdioを定義。 main.cで、と書くと、 fscanfをベースにしてるので、スペースや改行で切れてしまう仕様は織り込み済み。fscanfをベースにしてるので、スペースや改行で切れてしまう仕様…

print_file_text_cstdio

C標準入出力ライブラリ関数でテキストファイル出力するprint_file_text_cstdioを定義。 main.cで、と書くと、 実行すればこうなって、test1.txtを開くと、実行すればこうなって、test1.txtを開くと、 ロケール指定してないが、iso-2022-jp。ロケール指定して…

get_file_size

ファイルサイズ取得関数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

CWindow::MoveWindowで、ウィンドウの位置とサイズを変更する。 Window.cppで、Win32APIのMoveWindowで指定の位置とサイズをセット。 MainWindow.cppで、CEditCoreを置いて、エディットボックスのサイズをメインウィンドウのクライアント領域に合わせる。 ウ…

CWindow::OnSize

ウィンドウのサイズを変更された時に発生するハンドラCWindow::OnSizeを実装する。 Window.hで、OnSize追加。 Window.cppのDynamicWindowProcで、WM_SIZEでOnSizeに引数渡す。ここは何も実装しない。 MainWindow.hにも、OnSize実装。 MainWindow.cppでは、渡…

CPicture::OnVScroll

CPicture::OnVScrollで垂直方向スクロールバーも実装する。 Picture.hで、OnVScrollと、変化量を表すm_dyを追加。 Picture.cppで、OnVScrollを実装。OnPaintも垂直成分を追加。ビットマップサイズの取得とスクロールバーの初期化をSetBitmapに移動。 MainWin…

CPicture::OnHScroll

CPicture::OnHScrollを実装して、水平方向にビットマップをスクロールできるようにする。 Picture.hは、OnHScrollを追加。 またprivateで水平方向の変化量m_dxも追加。 Picture.cppで、再描画処理と水平方向スクロール処理。 MainWindow.cppは、ビットマップ…

CPicture::Create

CPicture::Createを実装する。 Picture.hに、第1引数がウィンドウ名のCreateを追加。 Picture.cppで、CPicture::Createの中では、CUserControl::Createで、ウィンドウクラス名は"CPicture"とする。 MainWindow.cppで、ピクチャーコントロールの生成に加えて…

CPicture::RegisterClass

改めて、CPictureをCUserControlの派生クラスとして作り直し、今回はCPicture::RegisterClassも実装する。 Picture.hで、CUserControlを継承元とする。 Picture.cppで、CStaticCoreだったところはCUserControlに。RegisterClassを呼ぶと、"CPicture"でウィン…

CPicture(スクロール処理実装調査)

現行のCPictureにスクロール機能を実装しようと調査したら、いろいろ問題があったので、書いていく。 まず、メニュー付きのウィンドウにスクロールバー付けて、水平方向スクロールバーの位置、垂直方向スクロールバーの位置をOnPaint時に描画するだけの場合…

CWindow::OnHScroll

CWindow::OnHScrollで、水平方向スクロールバーの制御をする。 Window.hで、OnHScrollを追加。 Window.cppでは、DynamicWindowProcで、WM_HSCROLLでOnHScrollを呼ぶようにして、OnHScrollは、水平方向スクロールバー処理。 MainWindow.cppでは、OnCreateでス…

CWindow::OnVScroll

CWindow::OnVScrollで、垂直方向スクロールバーの制御をする。 Window.hで、OnVScrollを追加。 Window.cppでは、DynamicWindowProcで、WM_VSCROLLでOnVScrollを呼ぶようにして、OnVScrollは、垂直方向スクロールバー処理。 MainWindow.cppでは、OnCreateでス…

CPicture::SetBitmap

CPicture::SetBitmapでビットマップをセットして、CPicture::OnPaintで表示する。 CStaticCoreとは違い、BitBltなどを使って描画する。 Picture.hは、SetBitmap、m_hBitmap、m_hOldBitmapを追加。 Picture.cppだが、SetBitmapは、このようにSelectObjectでm_…

CPicture::OnCreate

CPicture::OnCreateで、デバイスコンテキスト関連の準備をする。 Picture.hで、OnCreateを追加。 Picture.cppで、GetDCでm_hDCを取得したら、それを使って今度はCreateCompatibleDCでm_hMemDCを生成する。 m_hDCを取得できたm_hDCを取得できた。 m_hMemDCも…

CPicture::Destroy

まず先に、CPicture::Destroyを実装する。 Picture.hは、メンバ関数Destroyを追加。 Picture.cppで、m_hMemDCはDeleteDCで破棄、m_hDCはReleaseDCで解放。 これが表示されて、閉じた後に、これが表示されて、閉じた後に、 ここにきて、ここにきて、 ここにき…

CPicture

コンストラクタなどを追加する。 Picture.hは、コンストラクタ、デストラクタ、デバイスコンテキストハンドルm_hDC、メモリデバイスコンテキストハンドルm_hMemDCを追加。 Picture.cppは、コンストラクタで、m_hDCとm_hMemDCの値をNULLで初期化。 OnPaintで…

CPicture::OnPaint

CPictureクラスを実装するが、まずはOnPaintから。 Picture.hは、OnPaintのみ。 Picture.cppは、OnPaintでは、TextOutで"CPicture"と描画。 あとはMainWindow.hで、CStaticCoreをCPictureに替えて、MainWindow.cppで、こちらもCPictureに。 こうなるこうなる…

CCustomControl::OnPaint

CCustomControl::OnPaintを実装して、描画動作を変えてみる。 その前に、 これを置いておいてこれを置いておいて、MainWindow.cppで、これだけだったら、 bitmap1.bmpが表示されるbitmap1.bmpが表示される。 CustomControl.hで、OnPaintを追加し、 CustomCon…

CWindow::OnPaint

ウィンドウの描画を要求された時のハンドラCWindow::OnPaintを実装する。 Window.hで、を追加。 Window.cppで、ここは何もしない。 DynamicWindowProcでは、こうしておく。 MainWindow.hにも、OnPaint追加。 MainWindow.cppは、TextOutで"CWindow"と描画して…

CBitmap::LoadImage

ビットマップリソースではなく、ビットマップファイルをロードするようにする。 Bitmap.hで、LoadImageを追加。 引数はWin32APIのLoadImageと一緒のバージョンにする。 Bitmap.cppは、Win32APIのLoadImageを呼んでいる。 MainWindow.cppで、CBitmap::LoadIma…

CStaticCore::SetBitmap

CStaticCore::SetBitmapでビットマップをセットする。 リソース追加リソース追加。 BitmapをインポートBitmapをインポート。 以前のこれをインポート以前のこれをインポート。 これが出るけど、「はい」で。これが出るけど、「はい」で。 これも「はい」これ…

CBitmap::operator HBITMAP

HBITMAP演算子でビットマップハンドルを取り出すようにする。 Bitmap.hは、m_hBitmapをprivateにして、publicにHBITMAP演算子を追加。 Bitmap.cppは、HBITMAP演算子は、m_hBitmapを返すだけ。 MainWindow.cppは、取り出し方が、m_pBitmap->m_hBitmapから、(H…