关于API的问题...

我想让一个win32窗口程序输出HELLOWORLD,摁键盘上的上键一下,就让helloworld的位置向上(其他方向也是).这个程序该怎么写呢?最好有详细的讲解.谢谢了... 我想让一个win32窗口程序输出HELLOWORLD,摁键盘上的上键一下,就让helloworld的位置向上(其他方向也是).这个程序该怎么写呢?最好有详细的讲解.谢谢了o(︶︿︶)o 唉
对了,是C++的程序
展开
 我来答
敛正雅7f
2011-05-08 · TA获得超过2031个赞
知道大有可为答主
回答量:1553
采纳率:0%
帮助的人:1789万
展开全部
记得建windows程序,不是控制台程序了。以下代码在VC6.0下测试通过。
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int g_nYPos = 200; //文字的Y坐标
long WINAPI WndProc( HWND hWnd,UINT iMessage,UINT wParam,LONG lParam );
BOOL InitWindowsClass( HINSTANCE hInstance );
BOOL InitWindows( HINSTANCE hInstance, int nCmdShow );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
MSG Message;
if(!InitWindowsClass(hInstance))
return FALSE;
if(!InitWindows(hInstance,nCmdShow))
return FALSE;
while(GetMessage(&Message,0,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
HDC hDC;
HBRUSH hBrush;
HPEN hPen;
PAINTSTRUCT PtStr;
switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&PtStr);
SetMapMode(hDC,MM_ANISOTROPIC);

TextOut(hDC,200,g_nYPos,"HELLO WORLD",11); //在窗口中输出文字
EndPaint(hWnd,&PtStr);

return 0;

case WM_KEYUP: //响应按键释放消息
switch(wParam)
{
case VK_UP: //响应向上按键
g_nYPos -= 10; //Y坐标减少
break;
case VK_DOWN:
g_nYPos += 10; //Y坐标增加
break;
}
InvalidateRect(hWnd, NULL, TRUE);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(hWnd,iMessage,wParam,lParam);
}

}
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
HWND hWnd;
hWnd=CreateWindow(
"WinFill",
"tianchongshili",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if(!hWnd)
return FALSE;
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
BOOL InitWindowsClass(HINSTANCE hInstance)
{
WNDCLASS WndClass;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,"END");
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="WinFill";
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式