c++中窗口过程的问题
CString tmp=“aaa”;LRESULT CALLBACK SubWndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
MessageBox(tmp);//编译提示error C2660: 'MessageBoxA' : function does not take
// 1 parameters,用其他的方法SetWindowText()等好像都会出错,怎么办啊
return 0;
}
MessageBox(tmp);//编译提示error C2660: 'MessageBoxA' : function does not take
// 1 parameters,用其他的方法SetWindowText()等好像都会出错,怎么办啊
return 0;
}
答案:你说你学C++,我想问下C++有string类那个CString 是什么玩意儿?WINDOWS编程c/c++都一样,其实是正确调用函数1.MessageBox函数都有4个参数你只有一个?怎么搞的?参数好像是:MessageBox(HWND,LPSTR,LPSTR,UINT),其实是你漏了参数没打上,对于后面有没A的只是调用函数的问题设计UNICODE你现在不用管.
2.SetWindowText函数参数有多少个我忘了但是至少2个参数,为什么?第一,你至少要明确向那个窗口设置标题信息?第二,要发送的信息内容,是把?
你是用API直接编程的吧,不是用的MFC之类的,我下面给你一个例子,是时钟程序的,直接用API编的,VC6.0的EXE工程,其中你只看LRESULT CALLBACK函数就好,还有就是在LRESULT CALLBACK函数中使用API函数,就像是你的MESSAGEBOX,一定要放在消息响应中,比如WM_CREATE,这个消息是窗口创建的消息,你要是想在窗口打开时显示MESSAGEBOX的消息框就在这个消息里写函数。
MessageBox(HWND,LPSTR,LPSTR,UINT); 其中第一个是父窗口的句柄,第二个是你想显示的内容,第三个是弹出消息框的窗口标题,第四个是消息框的回应模式,就像是在里面加入“确定,取消,OK”之类的按钮,一般你用MB_OK就好。我也好久没编了,有些地方你在看下书,下面是时钟程序的纯API代码。
#include"windows.h"
#define ID_TIMER 1
LRESULT CALLBACK WinProc(HWND,UINT,WPARAM,LPARAM);
static char szAppName[]="sample";int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdShow,
int nCmdShow)
{
HWND hWnd;
MSG msg;
WNDCLASS wndclass;wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance =hInstance;
wndclass.lpfnWndProc =WinProc;
wndclass.lpszClassName =szAppName;
wndclass.lpszMenuName =NULL;
wndclass.style =CS_HREDRAW|CS_VREDRAW;RegisterClass(&wndclass);
hWnd=CreateWindow(szAppName,"digit_time",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}return msg.wParam;
}void DisplayDigit(HDC hDc,int iNumber)
{
int iSeg;
static BOOL fSevenSegment[10][7]={
1, 1, 1, 0, 1, 1, 1, // 0
0, 0, 1, 0, 0, 1, 0, // 1
1, 0, 1, 1, 1, 0, 1, // 2
1, 0, 1, 1, 0, 1, 1, // 3
0, 1, 1, 1, 0, 1, 0, // 4
1, 1, 0, 1, 0, 1, 1, // 5
1, 1, 0, 1, 1, 1, 1, // 6
1, 0, 1, 0, 0, 1, 0, // 7
1, 1, 1, 1, 1, 1, 1, // 8
1, 1, 1, 1, 0, 1, 1}; // 9
static POINT ptSegment[7][6]={
7, 6, 11, 2, 31, 2, 35, 6, 31, 10, 11, 10,
6, 7, 10, 11, 10, 31, 6, 35, 2, 31, 2, 11,
36, 7, 40, 11, 40, 31, 36, 35, 32, 31, 32, 11,
7, 36, 11, 32, 31, 32, 35, 36, 31, 40, 11, 40,
6, 37, 10, 41, 10, 61, 6, 65, 2, 61, 2, 41,
&n
上一个:程序设计,C++
下一个:求图书馆管理系统C++源代码