久しぶりの更新
久しぶりの更新なのですが、
今日はWin32APIのひな形を記してみます。
覚え書き程度ですが。
よっこしょ。
//main.cpp
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
TCHAR szClassName[] = TEXT("zenon02");
int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
LPSTR lpsCmadLine, int nCmdShow)
{
MSG msg;
BOOL bRet;
WNDCLASSEX wc;
HWND hWnd;
wc.cbSize = sizeof(WNDCLASSEX); //ウインドウサイズ
wc.style = CS_HREDRAW | CS_VREDRAW; //ウインドウスタイル
wc.lpfnWndProc = WndProc; //ウインドウ名
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hCurInst;
//アイコン
wc.hIcon = (HICON)LoadImage(NULL,
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
//マウスカーソル
wc.hCursor = (HCURSOR)LoadImage(NULL,
MAKEINTRESOURCE(IDC_ARROW),
IMAGE_CURSOR,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
//背景色
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
//クラス名
wc.lpszClassName = szClassName;
//タイトルバーの左端にあるような小さいアイコンを指定
wc.hIconSm = (HICON)LoadImage(NULL,
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);
if (RegisterClassEx(&wc) == 0)
return FALSE;
hWnd = CreateWindow(
wc.lpszClassName,
TEXT("ゆゆ様マジ愛してる"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
wc.hInstance,
NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
if (bRet == -1) {
break;
} else {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}
//proc.cpp
#include <windows.h>
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
switch (msg) {
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd, msg, wp, lp));
}
return 0;
}
ざっとこんな感じです。
実行すると、
こうなります。
うん。見事に何もしないウインドウですね。
これからもっと勉強してみます。
では!
べき乗
今日はCの覚え書きです。
最近Javaも勉強してみたのですが、
Cのと似通った部分が多くて楽しいですね。
便利な関数もいっぱいあるみたいですし。
まあ難しい事は私もあまり理解してませんし、今は言及しません。
Javaの本でべき乗を求める式を作れってのがあったので、以前自作したCでのべき乗を作るfor文を覚え書きしとこうかなあと思います。
int Test::power()
{
int power = 1; //1で初期化 //要素をかけていくため
cout << "a = "; //
cin >> a; //aを入力
cout << "b = "; //
cin >> b; //bを入力
//べき乗は0の0乗,数字の0乗は0
if( (a == 0)&&(b == 0) || (b == 0) ) {
power = 1;
}
for (int i = 0; i < b; i++) {
power *= a;
}
cout << "a ^ b = " << power << endl;
return 0;
}
こんな感じですね。
int Test::とあるのは、Testクラスのメンバ関数int power()ということです。
まあC++では基本的な部分ですね。
しかしこれ作ったあとにしったのですが、
cmathだったかな?ライブラリにpow()っていうべき乗を返す関数が既に定義済でした。
知らなかったですわー
まあ簡単なアルゴリズムの勉強になったかな・・・と思う事にしましたw
新学期なので【1日1プログラミング】
明日から新学期がスタートするので、
ここは1つ新たな目標を掲げてみます。
私は将来プログラマーになりたいとかそういうわけではないですが、
自分の技術向上&勉強のために企画を立ち上げてみます。
【1日1プログラミング】です。
内容は至ってシンプル。
ただ1日に一個ソースを書いてビルドするだけ。
内容は問わないし、言語も問わない。
でもおそらくはC++になります。
ここにうpするかはまだわかりません。
いまのところ私個人で始める企画ですが、一緒に頑張ろうぜ!って方が居らっしゃるなら嬉しいです。
Cのみと言いましたが、
Androidの実機が手に入るならJavaもやっていきます。
テストなど、煩い期間もありますが、なんとか1年間頑張ります。
それではさようなら!