ぷろぐらみんぐ日和 -9ページ目

2010-05-09の呟き

  1. searchpclhttp://ameblo.jp/programlanguage/ 3記事アップ。 プログラミング環境やメニュープログラム
  2. searchpcl呟き祭り円ドナウ
  3. searchpclメールしよ┐( ̄ヘ ̄)┌
  4. searchpclキタコレ(゚∀゚)!!!
  5. searchpclキタ━━━(゚∀゚)━━━???
  6. searchpcl呟き祭りなう
  7. searchpcl昼飯食いすぎた。。。
  8. searchpclもうちょっと待ちなう
  9. searchpclそろそろプログラミング学習や労かな
  10. searchpcl帰宅なう
  11. searchpcl結構フォローが増えて着達す。 嬉しいことっす。
  12. searchpclおきたz/・・・

Powered by t2b

メニュープログラムの学習

メニューが付いている、

文字が入力できるプログラムです。

カーソルとかエンター押しても改行とかしません。


//windows.cpp

#include <windows.h>
#include "menu.h"

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
ATOM InitApp(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);

char szClassName[] = "menu1"; //ウィンドウクラス


int WINAPI WinMain(HINSTANCE hCurInst, HINSTANCE hPrevInst,
LPSTR lpsCmdLine, int nCmdShow)
{
MSG msg;
BOOL bRet;

if (!InitApp(hCurInst))
return FALSE;
if (!InitInstance(hCurInst, nCmdShow))
return FALSE;
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) {
if (bRet == -1) {
break;
} else {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
}

//ウィンドウ・クラスの登録

ATOM InitApp(HINSTANCE hInst)
{
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc; //プロシージャ名
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInst;//インスタンス
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 = "MYMENU"; //メニュー名
wc.lpszClassName = (LPCSTR)szClassName;
wc.hIconSm = (HICON)LoadImage(NULL,
MAKEINTRESOURCE(IDI_APPLICATION),
IMAGE_ICON,
0,
0,
LR_DEFAULTSIZE | LR_SHARED);

return (RegisterClassEx(&wc));
}

//ウィンドウの生成

BOOL InitInstance(HINSTANCE hInst, int nCmdShow)
{
HWND hWnd;

hWnd = CreateWindow(szClassName,
"メニュエディタver0.00", //タイトルバーにこの名前が表示されます
WS_OVERLAPPEDWINDOW, //ウィンドウの種類
CW_USEDEFAULT, //X座標
CW_USEDEFAULT, //Y座標
CW_USEDEFAULT, //幅
CW_USEDEFAULT, //高さ
NULL, //親ウィンドウのハンドル、親を作るときはNULL
NULL, //メニューハンドル、クラスメニューを使うときはNULL
hInst, //インスタンスハンドル
NULL);
if (!hWnd)
return FALSE;
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}

//ウィンドウプロシージャ

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
int id;
PAINTSTRUCT ps;
static char szBuf[2], szShow[256];
HDC hdc;

switch (msg) {
case WM_COMMAND:

switch(LOWORD(wp)){
case IDM_END:
id = MessageBox(hWnd,
"終了してもよろしいですか",
"確認",
MB_YESNO | MB_ICONQUESTION);
if (id == IDYES)
SendMessage(hWnd, WM_CLOSE, 0,0);
break;

case IDM_HELP:
MessageBox(hWnd,"Copyright(C)2010 探索する人","ヘルプ",MB_OK);
break;

default:
return (DefWindowProc(hWnd, msg, wp, lp));

}

break;
case WM_CREATE:
break;
case WM_CHAR:
wsprintf(szBuf, "%c", (int)wp);
strcat(szShow, szBuf);
InvalidateRect(hWnd, NULL, TRUE);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 10, 10, szShow, (int)strlen(szShow));
EndPaint(hWnd, &ps);
break;
case WM_CLOSE:
id = MessageBox(hWnd,
"終了してもよろしいですか",
"確認",
MB_YESNO | MB_ICONQUESTION);
if (id == IDYES)
DestroyWindow(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return (DefWindowProc(hWnd, msg, wp, lp));
}
return 0;
}


//menu.h

#define IDM_END 102
#define IDM_HELP 103

//windows.rc

#include "menu.h"
#include <windows.h>

MYMENU MENU
BEGIN
POPUP "ファイル(&F)"
BEGIN
MENUITEM "終了(&X)",IDM_END
END
MENUITEM "ヘルプ(&H)",IDM_HELP
END


メニューに終了する機能とヘルプ機能が付いています。


これはとりあえずexeをうpしておきます。

サイズは47kbです。


ダウンロード


スクリーンショット
ぷろぐらみんぐ日和

C言語総合開発環境の新調

今回メニューを使ったプログラム学習をするにおいて、

リソースファイルとインクルードファイルをプロジェクトにリンクする行動が、

BCC Developerでは難しい(というよりは面倒臭い)ので、

総合開発環境の新調を決定しました。


Visual Studio 2008をダウンロードしようと思っていたんですが、

ホムペを覗いて見ると、

Visual Studio 2010 Express 日本語版が提供開始されていました。

なのでダウンロード・インストールし、

使いやすいかどうか試運転してみたところ…


Visual Studioは初めて使うので、

あまり慣れませんでした。


分かったことは、

BCCとのプロジェクト互換性はないことです。

あと商用は不可みたいですね。


早く慣れないと。


ポケモンブラック・ホワイト新御三家シェルエット


ぷろぐらみんぐ日和

今日のポケサンで放送されたシェルエットです。


左がほのおタイプ

真中がくさタイプ

右がみずタイプではないかと。


続報はコロコロあたりですかね。

APIの未解決…

http://ameblo.jp/programlanguage/entry-10529422272.html

ヘルプメッセージを出しておいたのですが…

誰もコメントして下さらない。。。


APIが分かる人がなかなか来ないっていうのもあるんたど思いますが、

流石に是は酷い。

反応だけでもしてくれたら良いのに。

テンションがあかんのか!?テンションが!?


というわけでこないだのデスクトップアプリは

「まだ今の知識では不可能」と断定されました。


失敗は成功の基といわれるが、成功の基になった気がしないのは自分だけであろうか・・・?


コード書いたりしてる記事は今日の夜しか無理です。