新手提问:CreateDialog为什么返回NULL??(先答对者送200分)
另外100分请见
http://www.csdn.net/expert/topic/343/343627.shtm
自认为答对者请在另一个贴子处签名,以便给分
*****************************************************************
Dialog 的ID="ColorSrcDlg" 和 ColorSrcDlg我都试过了
GetLastError()返回87(参数错误),参数为什么错??
难道《Windows程序设计》(上)492页的colors2程序有误??
大家再看看,谢谢!
#include "stdafx.h"
#include "resource.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK ColorSrcDlg(HWND,UINT,WPARAM,LPARAM);
HWND hDlgModeless;
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
TCHAR szBuff[100];
static TCHAR szAppName[] = TEXT("Colors2");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = CreateSolidBrush(255L);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance = hInstance;
wndclass.lpfnWndProc = WndProc;
wndclass.lpszClassName = szAppName;
wndclass.lpszMenuName = NULL;
wndclass.style = CS_HREDRAW|CS_VREDRAW;
RegisterClass(&wndclass);
hwnd = CreateWindow(szAppName,TEXT("Color Scroll Program"),
WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
hDlgModeless = CreateDialog(hInstance,"ColorSrcDlg",hwnd,ColorSrcDlg);
//hDlgModeless = CreateDialog(hInstance,MAKEINTRESOURCE(ColorSrcDlg),hwnd,ColorSrcDlg);
// hDlgModeless=CreateDialog(hInstance,(LPCTSTR)ColorSrcDlg,hwnd,(DLGPROC)ColorSrcDlg);
DWORD r=GetLastError();
wsprintf(szBuff,"lasterror=%ld",r);
if(hDlgModeless==NULL) MessageBox(NULL,"doesn't create dialog ,please check !",szBuff,MB_OK);
while(GetMessage(&msg,NULL,0,0))
{
if(hDlgModeless==0||!IsDialogMessage(hDlgModeless,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return 0;
}