写的第一个窗口程序,编译通过了,but运行不能,求指点 本帖最后由 xianglitian 于 2010-09-17 20:27:51 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /**SdkMain.cpp³ÌÐòÎļþ*/#include <Windows.h>#include "string.h"int WINAPI WinMain (HINSTANCE hInst, HINSTANCE PpreInst, LPSTR lpszCmdline, int cmdShow);LRESULT WINAPI WndProc (HWND,UINT, WPARAM, LPARAM);int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ HWND hWnd; //Ö÷´°¿Ú¾ä±ú MSG msg; //´°¿ÚÏûÏ¢ WNDCLASS wc; //´°¿ÚÀà //Ìî³ä´°¿ÚÀàÐÅÏ¢ 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 = _T("SDK"); //×¢²á´°¿ÚÀà if(!RegisterClass (&wc)) { return -1; } //´´½¨Ó¦ÓóÌÐòÖ÷´°¿Ú hWnd = CreateWindow (_T("SDK"), _T("Win32SDKÓ¦ÓóÌÐòʵÀý"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 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; switch(msg) { case WM_PAINT: hDC = GetDC(hWnd); TextOut(hDC, 10,100, _T("Hello World!"), _tcslen(_T("Hello World!"))); break; case WM_DESTROY: PostQuitMessage(0); break; default: break; } return DefWindowProc(hWnd, msg, wparam, lparam);} 还有CreateWindow (( LPCTSTR )"Hello World!",( LPCTSTR )"Win32SDK应用程序实例",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);改为:CreateWindow (( LPCTSTR )"SDK",( LPCTSTR )"Win32SDK应用程序实例",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL); 分别修改如下:1. CreateWindow (( LPCTSTR )"Hello World!", 改为 CreateWindow (( LPCTSTR )"SDK",2.在使用wc之前,把结构体全初始化为零,这样不填写的域 全为零,避免出错: RtlZeroMemory(&wc,sizeof(WNDCLASS));3. 修改 WndProc LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam){ HDC hDC; switch(msg) { case WM_PAINT: hDC = GetDC(hWnd); TextOut(hDC, 10,100, _T("Hello World!"), _tcslen(_T("Hello World!"))); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wparam, lparam); } return 0; } 至此,程序可以运行了. CreateWindow()第一个参数是你注册的窗口类名,就是你wc的最后一个字段值,还有一个就是GetDC后要ReleaseDC的,DC使用完后要释放 自绘菜单的问题 一个简单的 Cfile 读取文本文件, 却是乱码, 向大家请教 关于遍历目录文件顺序的问题 怎样同时捕获Ctrl 和 Enter按键事件 *** 账号解封了,放分 300分 , 问一个问题。 谁能提供可用的RSA算法和例程 (1)*** 高分奉送;项目太急;领导崔的很紧 如何填充两弧线之间形成的一段范围 ________这么好的编程网站你不去,你瞎转悠什么________UP有分 一个小问题 我做的单机运行asp的模拟环境已经初具规模,有谁愿意帮忙测试? CListCtrl控件里有不断更新读取的虚函数吗? 如何让单个程序静音,而不影响系统声音
*SdkMain.cpp³ÌÐòÎļþ
*/#include <Windows.h>
#include "string.h"int WINAPI WinMain (HINSTANCE hInst, HINSTANCE PpreInst, LPSTR lpszCmdline, int cmdShow);
LRESULT WINAPI WndProc (HWND,UINT, WPARAM, LPARAM);int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd; //Ö÷´°¿Ú¾ä±ú
MSG msg; //´°¿ÚÏûÏ¢
WNDCLASS wc; //´°¿ÚÀà //Ìî³ä´°¿ÚÀàÐÅÏ¢
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 = _T("SDK");
//×¢²á´°¿ÚÀà
if(!RegisterClass (&wc))
{
return -1;
} //´´½¨Ó¦ÓóÌÐòÖ÷´°¿Ú
hWnd = CreateWindow (_T("SDK"),
_T("Win32SDKÓ¦ÓóÌÐòʵÀý"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
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;
switch(msg)
{
case WM_PAINT:
hDC = GetDC(hWnd);
TextOut(hDC, 10,100, _T("Hello World!"), _tcslen(_T("Hello World!")));
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
break;
}
return DefWindowProc(hWnd, msg, wparam, lparam);
}
CreateWindow (( LPCTSTR )"Hello World!",
( LPCTSTR )"Win32SDK应用程序实例",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
改为:
CreateWindow (( LPCTSTR )"SDK",
( LPCTSTR )"Win32SDK应用程序实例",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
改为
CreateWindow (( LPCTSTR )"SDK",
2.在使用wc之前,把结构体全初始化为零,这样不填写的域 全为零,避免出错:
RtlZeroMemory(&wc,sizeof(WNDCLASS));
3. 修改 WndProc
LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
HDC hDC;
switch(msg)
{
case WM_PAINT:
hDC = GetDC(hWnd);
TextOut(hDC, 10,100, _T("Hello World!"), _tcslen(_T("Hello World!")));
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wparam, lparam); } return 0;
} 至此,程序可以运行了.