HWND m_hWndSocket = NULL; WNDCLASS wndCls;
wndCls.style = CS_HREDRAW | CS_VREDRAW;
wndCls.cbClsExtra = 0;
wndCls.cbWndExtra = 0;
wndCls.hbrBackground = 0;
wndCls.hCursor = NULL;
wndCls.hIcon = NULL;
wndCls.hInstance = NULL;
wndCls.lpfnWndProc = SocketWndProc;
wndCls.lpszMenuName = NULL;
wndCls.lpszClassName = "FPSSocketWnd"; cout<<"reg:"<<RegisterClass(&wndCls)<<endl; m_hWndSocket = ::CreateWindow("FPSSocketWnd","Socket",WS_POPUP,0,0,100,100, NULL,NULL,NULL,NULL); cout<<"m_hWndSocket:"<<m_hWndSocket<<endl;
if(m_hWndSocket == NULL)
{
cout<<GetLastError()<<endl;
} 注册窗口类成功了,为什么CreateWindow会失败呢?请教.
wndCls.style = CS_HREDRAW | CS_VREDRAW;
wndCls.cbClsExtra = 0;
wndCls.cbWndExtra = 0;
wndCls.hbrBackground = 0;
wndCls.hCursor = NULL;
wndCls.hIcon = NULL;
wndCls.hInstance = NULL;
wndCls.lpfnWndProc = SocketWndProc;
wndCls.lpszMenuName = NULL;
wndCls.lpszClassName = "FPSSocketWnd"; cout<<"reg:"<<RegisterClass(&wndCls)<<endl; m_hWndSocket = ::CreateWindow("FPSSocketWnd","Socket",WS_POPUP,0,0,100,100, NULL,NULL,NULL,NULL); cout<<"m_hWndSocket:"<<m_hWndSocket<<endl;
if(m_hWndSocket == NULL)
{
cout<<GetLastError()<<endl;
} 注册窗口类成功了,为什么CreateWindow会失败呢?请教.
解决方案 »
- 难道那个小玩意只有腾迅的人能做吗(我只有23分了,先赊欠一下)
- 【2006年11月专家榜揭晓】〖赏银300W两〗(≈^︵^≈)
- 如何调用动态链接库里面的函数呢??急
- 开发EMAIL客户端的探讨!!!!!高分相送!!!!!!!!!
- 怎样把一个CString 字符串转化成 unsigned short 字符串的形式?
- Win98下注册msxml3
- 我用NetUserAdd建了用户,但怎样才能把所建的用户加上管理员的权限呢?(用程序)
- 请问如何从一张表中查找到一个数据,并用新的数据更新之??急!大家帮帮忙哈
- 怎么不让修改RICHEDIT里面特定的内容
- [转]一个北大的中国学生对日本记者的回答
- 结构体的长度,简单
- 游戏开发
//窗口函数如下:
LRESULT CALLBACK SocketWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return 0;
}
*SDK窗口的创建步骤:
*-Ctrl+N
*-点击Projects 选项卡
*-点击Win32 Application
*-Project name:输入工程名称,然后OK
*-选择An empty project.
*-点击Finish完成,再点击OK *-然后点击上面的菜单Project
*-点击Add To Project->New...
*-点击Files选项卡
*-选择C++ Source File
*-File:输入文件名称
*-点击OK
*-最后把代贴进去,进行编译就OK了!
**********************************************************************/
#include "windows.h"//窗口过程函数申明
LRESULT WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);//Win32程序主函数WinMain
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hWnd; // 主窗口句柄
MSG msg; // 窗口消息
WNDCLASS wc; // 窗口類
if (!hPrevInstance)
{
// 填充窗口類信息
wc.style = CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = "SdkDemo1";
// 註冊窗口類
RegisterClass(&wc);
} // 創建應用程序主窗口
hWnd=CreateWindow ("SdkDemo1", // 窗口類名
"第一個Win32 SDK應用程序", // 窗口標題
WS_OVERLAPPEDWINDOW, // 窗口樣式
CW_USEDEFAULT, // 初始化 x 坐標
CW_USEDEFAULT, // 初始化 y 坐標
CW_USEDEFAULT, // 初始化窗口寬度
CW_USEDEFAULT, // 初始化窗口高度
NULL, // 父窗口句柄
NULL, // 窗口菜單句柄
hInstance, // 程序實例句柄
NULL); // 創建參數
// 顯示窗口
ShowWindow(hWnd,SW_SHOW);
// 更新主窗口客戶區
UpdateWindow(hWnd);
// 開始消息循環
while (GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}// WndProc 主窗口過程
LRESULT WINAPI WndProc (HWND hWnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
//在窗口內畫一個圓形
HDC hdc;
RECT rc;
HPEN hPen,hPenOld;
HBRUSH hBrush,hBrushOld;
switch (msg)
{
case WM_PAINT:
hdc=GetDC(hWnd);
GetClientRect(hWnd,&rc);
hPen=CreatePen(PS_SOLID,0,RGB(0,0,0));
hBrush=CreateHatchBrush(HS_DIAGCROSS,RGB(0,0,0));
hPenOld=(HPEN)SelectObject(hdc,hPen);
hBrushOld=(HBRUSH)SelectObject(hdc,hBrush);
Ellipse(hdc,rc.left,rc.top,rc.right,rc.bottom);
SelectObject(hdc,hPenOld);
SelectObject(hdc,hBrushOld);
ReleaseDC(hWnd,hdc);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:break;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
HELLOWIN.C -- Displays "Hello, Windows 98!" in client area
(c) Charles Petzold, 1998
------------------------------------------------------------*/#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}
hwnd = CreateWindow (szAppName, // window class name
TEXT ("The Hello Program"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message)
{
case WM_CREATE:
PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}