程序是基于 WIN32 APPLICATION的 ,本人初学代码片段:int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow){
int err;err=DialogBox(hInstance,(LPCTSTR)IDD_CHAT_DIALOG,NULL,(DLGPROC)WndProc);
if (err==-1)
MessageBox(NULL,"生成窗体失败!",NULL,NULL);
return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND subWnd;
char Buffer[BUFFER_SIZE];
UINT Port;
char serverIP[16];
switch (message)
{
case WM_INITDIALOG:
{
//初始化SOCKET栈
WSADATA wsadata;
if (WSAStartup(MAKEWORD(2,2),&wsadata)!=0)
{
MessageBox(hWnd,"Socket Stack error!","error",IDOK);
return -1;
} }
return TRUE;
case WM_COMMAND://各种控件信息
{
switch(LOWORD(wParam))
{
case IDOK://确定按钮
case IDCANCEL://取消按钮
EndDialog(hWnd,LOWORD(wParam));
break;
case IDC_CONNECT://连接服务器按钮
{
subWnd=GetDlgItem(hWnd,IDC_LISTEN_PORT_C);
GetWindowText(subWnd,Buffer,BUFFER_SIZE);
Port=UINT(atoi(Buffer));
subWnd=GetDlgItem(hWnd,IDC_SERVERIP);
GetWindowText(subWnd,Buffer,BUFFER_SIZE);
strncpy(serverIP,Buffer,16);
ClientInit(hWnd,Port,serverIP);//客户端初始化
}
break;
case IDC_LISTEN://建立服务器按钮
{
if(HIWORD(wParam)==EN_UPDATE)//响应EN——UPDATE消息
{
SendMessageToPeer(hWnd);//调用处理用户输入
}
}
default:
break;
}
}
。
。
。
。}
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow){
int err;err=DialogBox(hInstance,(LPCTSTR)IDD_CHAT_DIALOG,NULL,(DLGPROC)WndProc);
if (err==-1)
MessageBox(NULL,"生成窗体失败!",NULL,NULL);
return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND subWnd;
char Buffer[BUFFER_SIZE];
UINT Port;
char serverIP[16];
switch (message)
{
case WM_INITDIALOG:
{
//初始化SOCKET栈
WSADATA wsadata;
if (WSAStartup(MAKEWORD(2,2),&wsadata)!=0)
{
MessageBox(hWnd,"Socket Stack error!","error",IDOK);
return -1;
} }
return TRUE;
case WM_COMMAND://各种控件信息
{
switch(LOWORD(wParam))
{
case IDOK://确定按钮
case IDCANCEL://取消按钮
EndDialog(hWnd,LOWORD(wParam));
break;
case IDC_CONNECT://连接服务器按钮
{
subWnd=GetDlgItem(hWnd,IDC_LISTEN_PORT_C);
GetWindowText(subWnd,Buffer,BUFFER_SIZE);
Port=UINT(atoi(Buffer));
subWnd=GetDlgItem(hWnd,IDC_SERVERIP);
GetWindowText(subWnd,Buffer,BUFFER_SIZE);
strncpy(serverIP,Buffer,16);
ClientInit(hWnd,Port,serverIP);//客户端初始化
}
break;
case IDC_LISTEN://建立服务器按钮
{
if(HIWORD(wParam)==EN_UPDATE)//响应EN——UPDATE消息
{
SendMessageToPeer(hWnd);//调用处理用户输入
}
}
default:
break;
}
}
。
。
。
。}
解决方案 »
- 高斯投影后如何实现邻带拼接的问题
- 无UPDATE_COMMAND_UI消息
- 求救: 同一个组件在不同的机器上注册后,能否用一个客户程序同时启动它们???
- 高分求助,仙人指路
- [急问]如何查找一个EXCEL表格中的相应项并返回该项所在的行列号??
- 关于创建摸态对话框的一点小问题,请各位多多帮助!
- 为什么我在调用GetDefaultPrinter时会出error C2065: 'GetDefaultPrinter' : undeclared identifier
- 急需各位高手解答,是SQL語句問題,在線等待
- 如何在VC++中遍历指定目录中的所有文件?
- 如何得到鼠标左右键同时按下的消息?
- 郁闷,我太粗心了,不知道问题出在哪. 回答正确的马上结贴给分
- 有实际开发工作经验的判断标准
在这句err=DialogBox(hInstance,(LPCTSTR)IDD_CHAT_DIALOG,NULL,(DLGPROC)WndProc); 前调用 InitCommonControls();一下
example:
...
InitCommonControls(); // 或者InitCommonControlsExerr=DialogBox(hInstance,(LPCTSTR)IDD_CHAT_DIALOG,NULL,(DLGPROC)WndProc);
...
DWORD ERRE=GetLastError();
出来错误代码ERRE:3435973836
DWORD ERRE=GetLastError();
现在ERRE=0
如果按照了还搞不定你发代码给我(压缩好整个工程):[email protected]
马上帮你看看
1、参数不正确: IDD_CHAT_DIALOG是否有效资源等
2、对话框资源所用的控件类型必须都已注册,通过调用InitCommonControlsEx函数若上述手段都无效,建议新建一个项目逐步移植。
我马上发过代码来,感谢。
#define IDS_APP_TITLE 103
#define IDD_CHAT_DIALOG 103我把它改成:#define IDS_APP_TITLE 103
#define IDD_CHAT_DIALOG 101还有按照我在1楼所说的做就好了,否则会生不成窗口小结一下:你这个对话框是自己在资源编辑器可电视化拖放出来的,那资源ID资源编辑器会自动帮你生成的,你没必要手工去改动resource.h这个头文件(除非有特殊要求),结果出错了你弄半天又找不到原因。