static TCHAR szAppNameWelcome[] = TEXT ("Welcome") ; //欢迎界面窗口类名
static TCHAR szAppNameMain[] = TEXT ("CodeBuilder") ; //多文档主框架类名
static TCHAR szAppNameText[] = TEXT ("NoteBook") ; //文本文档类名
static TCHAR szMainMenu[] = TEXT ("MainMenu") ; //定义主框架菜单名
static TCHAR szTextMenu[] = TEXT ("TextMenu") ; //定义文本编辑器菜单名static char szFindText [MAX_STRING_LEN] ;
static char szReplText [MAX_STRING_LEN] ;static HINSTANCE hInst ;
HMENU hMenuMain, hMenuText ;
HMENU hMenuMainWindow, hMenuTextWindow ;
static HWND hWndMain ;
static HWND hDlgModeless ;//公用对话框句柄
static HANDLE hBitmap ;
static OPENFILENAME ofn;//对于不同的对话框的名称的定义,下面的程序都将遵守"NOTEBOOLDLG?"的原则!
/*******************************************************************************/
/* 程序中的函数预先声明区 */
/*******************************************************************************/LRESULT CALLBACK WelcomeWndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK TextWndProc (HWND, UINT, WPARAM, LPARAM) ;
BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ;
BOOL CanPass (HWND, HWND) ;
BOOL CALLBACK CloseEnumProc (HWND, LPARAM) ;//通用函数的函数声明
void DoCaption (HWND, char *szTitleName) ;
void OkMessage (HWND, char *szMessage, char *szTitleName) ;
short AskAboutSave (HWND, char *szTitleName) ;//打开和保存文件的函数声明
void PopFileInitialize (HWND) ;
static long PopFileLength (FILE) ;
BOOL PopFileRead (HWND, PSTR) ;
BOOL PopFileWrite (HWND, PSTR) ;
BOOL PopFileOpenDlg (HWND, PSTR, PSTR) ;
BOOL PopFileSaveDlg (HWND, PSTR, PSTR) ; //查找和替换的函数声明
//HWND PopFindFindDlg (HWND) ;
//HWND PopFindReplaceDlg (HWND) ;
//BOOL PopFindfindText (HWND, int *, LPFINDREPLACE) ;
//BOOL PopFindReplaceText (HWND, int *, LPFINDREPLACE) ;
//BOOL PopFindNextText (HWND, int *) ;
//BOOL PopFindValidFind (void) ;
/*******************************************************************************/
/* 主控制台初始化区 */
/*******************************************************************************/int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR nCmdLine,
int nShowCmd)
{
MSG msg ;
hInst = hInstance ;
HWND hWndWelcome, hWndClient ;
WNDCLASSEX WndclassWelcome, Wndclass ;
WndclassWelcome.cbSize = sizeof (WNDCLASSEX) ;
WndclassWelcome.style = CS_NOCLOSE ;
WndclassWelcome.lpfnWndProc = (WNDPROC) WelcomeWndProc ;
WndclassWelcome.cbClsExtra = 0 ;
WndclassWelcome.cbWndExtra = 0 ;
WndclassWelcome.hInstance = hInstance ;
WndclassWelcome.hIcon = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ;
WndclassWelcome.hCursor = LoadCursor (NULL,IDC_ARROW) ;
WndclassWelcome.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
WndclassWelcome.lpszMenuName = NULL ;
WndclassWelcome.lpszClassName = szAppNameWelcome ;
WndclassWelcome.hIconSm = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ;
if (!RegisterClassEx (&WndclassWelcome)) return FALSE ; Wndclass.cbSize = sizeof (WNDCLASSEX) ;
Wndclass.style = CS_HREDRAW | CS_VREDRAW ;
Wndclass.lpfnWndProc = (WNDPROC) MainWndProc ;
Wndclass.cbClsExtra = 0 ;
Wndclass.cbWndExtra = 0 ;
Wndclass.hInstance = hInstance ;
Wndclass.hIcon = LoadIcon (hInstance, MAKEINTRESOURCE (IDI_ICON1)) ;
Wndclass.hCursor = LoadCursor (NULL,IDC_ARROW) ;
Wndclass.hbrBackground = (HBRUSH) GetStockObject (COLOR_APPWORKSPACE + 1) ;
Wndclass.lpszMenuName = NULL ;
Wndclass.lpszClassName = szAppNameMain ;
Wndclass.hIconSm = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ; if (!RegisterClassEx (&Wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),szAppNameMain, MB_ICONERROR) ;
return 0 ;
} Wndclass.cbSize = sizeof (WNDCLASSEX) ;
Wndclass.style = CS_HREDRAW | CS_VREDRAW ;
Wndclass.lpfnWndProc = (WNDPROC) TextWndProc ;
Wndclass.cbClsExtra = 0 ;
Wndclass.cbWndExtra = sizeof (HANDLE) ;
Wndclass.hInstance = hInstance ;
Wndclass.hIcon = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ;
Wndclass.hCursor = LoadCursor (NULL,IDC_ARROW) ;
Wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
Wndclass.lpszMenuName = NULL ;
Wndclass.lpszClassName = szAppNameText ;
Wndclass.hIconSm = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ; RegisterClassEx (&Wndclass);
hMenuMain = LoadMenu (hInstance, szMainMenu) ;
hMenuText = LoadMenu (hInstance, szTextMenu) ;
hMenuMainWindow = GetSubMenu (hMenuMain, MAIN_MENU_POS) ;
hMenuTextWindow = GetSubMenu (hMenuText, TEXT_MENU_POS) ;
我的程序是要做MDI,在注册第二个类的时候错了,但是第三个类却能注册成功
static TCHAR szAppNameMain[] = TEXT ("CodeBuilder") ; //多文档主框架类名
static TCHAR szAppNameText[] = TEXT ("NoteBook") ; //文本文档类名
static TCHAR szMainMenu[] = TEXT ("MainMenu") ; //定义主框架菜单名
static TCHAR szTextMenu[] = TEXT ("TextMenu") ; //定义文本编辑器菜单名static char szFindText [MAX_STRING_LEN] ;
static char szReplText [MAX_STRING_LEN] ;static HINSTANCE hInst ;
HMENU hMenuMain, hMenuText ;
HMENU hMenuMainWindow, hMenuTextWindow ;
static HWND hWndMain ;
static HWND hDlgModeless ;//公用对话框句柄
static HANDLE hBitmap ;
static OPENFILENAME ofn;//对于不同的对话框的名称的定义,下面的程序都将遵守"NOTEBOOLDLG?"的原则!
/*******************************************************************************/
/* 程序中的函数预先声明区 */
/*******************************************************************************/LRESULT CALLBACK WelcomeWndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK TextWndProc (HWND, UINT, WPARAM, LPARAM) ;
BOOL CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ;
BOOL CanPass (HWND, HWND) ;
BOOL CALLBACK CloseEnumProc (HWND, LPARAM) ;//通用函数的函数声明
void DoCaption (HWND, char *szTitleName) ;
void OkMessage (HWND, char *szMessage, char *szTitleName) ;
short AskAboutSave (HWND, char *szTitleName) ;//打开和保存文件的函数声明
void PopFileInitialize (HWND) ;
static long PopFileLength (FILE) ;
BOOL PopFileRead (HWND, PSTR) ;
BOOL PopFileWrite (HWND, PSTR) ;
BOOL PopFileOpenDlg (HWND, PSTR, PSTR) ;
BOOL PopFileSaveDlg (HWND, PSTR, PSTR) ; //查找和替换的函数声明
//HWND PopFindFindDlg (HWND) ;
//HWND PopFindReplaceDlg (HWND) ;
//BOOL PopFindfindText (HWND, int *, LPFINDREPLACE) ;
//BOOL PopFindReplaceText (HWND, int *, LPFINDREPLACE) ;
//BOOL PopFindNextText (HWND, int *) ;
//BOOL PopFindValidFind (void) ;
/*******************************************************************************/
/* 主控制台初始化区 */
/*******************************************************************************/int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR nCmdLine,
int nShowCmd)
{
MSG msg ;
hInst = hInstance ;
HWND hWndWelcome, hWndClient ;
WNDCLASSEX WndclassWelcome, Wndclass ;
WndclassWelcome.cbSize = sizeof (WNDCLASSEX) ;
WndclassWelcome.style = CS_NOCLOSE ;
WndclassWelcome.lpfnWndProc = (WNDPROC) WelcomeWndProc ;
WndclassWelcome.cbClsExtra = 0 ;
WndclassWelcome.cbWndExtra = 0 ;
WndclassWelcome.hInstance = hInstance ;
WndclassWelcome.hIcon = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ;
WndclassWelcome.hCursor = LoadCursor (NULL,IDC_ARROW) ;
WndclassWelcome.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
WndclassWelcome.lpszMenuName = NULL ;
WndclassWelcome.lpszClassName = szAppNameWelcome ;
WndclassWelcome.hIconSm = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ;
if (!RegisterClassEx (&WndclassWelcome)) return FALSE ; Wndclass.cbSize = sizeof (WNDCLASSEX) ;
Wndclass.style = CS_HREDRAW | CS_VREDRAW ;
Wndclass.lpfnWndProc = (WNDPROC) MainWndProc ;
Wndclass.cbClsExtra = 0 ;
Wndclass.cbWndExtra = 0 ;
Wndclass.hInstance = hInstance ;
Wndclass.hIcon = LoadIcon (hInstance, MAKEINTRESOURCE (IDI_ICON1)) ;
Wndclass.hCursor = LoadCursor (NULL,IDC_ARROW) ;
Wndclass.hbrBackground = (HBRUSH) GetStockObject (COLOR_APPWORKSPACE + 1) ;
Wndclass.lpszMenuName = NULL ;
Wndclass.lpszClassName = szAppNameMain ;
Wndclass.hIconSm = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ; if (!RegisterClassEx (&Wndclass))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),szAppNameMain, MB_ICONERROR) ;
return 0 ;
} Wndclass.cbSize = sizeof (WNDCLASSEX) ;
Wndclass.style = CS_HREDRAW | CS_VREDRAW ;
Wndclass.lpfnWndProc = (WNDPROC) TextWndProc ;
Wndclass.cbClsExtra = 0 ;
Wndclass.cbWndExtra = sizeof (HANDLE) ;
Wndclass.hInstance = hInstance ;
Wndclass.hIcon = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ;
Wndclass.hCursor = LoadCursor (NULL,IDC_ARROW) ;
Wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
Wndclass.lpszMenuName = NULL ;
Wndclass.lpszClassName = szAppNameText ;
Wndclass.hIconSm = LoadIcon (hInstance,MAKEINTRESOURCE (IDI_ICON1)) ; RegisterClassEx (&Wndclass);
hMenuMain = LoadMenu (hInstance, szMainMenu) ;
hMenuText = LoadMenu (hInstance, szTextMenu) ;
hMenuMainWindow = GetSubMenu (hMenuMain, MAIN_MENU_POS) ;
hMenuTextWindow = GetSubMenu (hMenuText, TEXT_MENU_POS) ;
我的程序是要做MDI,在注册第二个类的时候错了,但是第三个类却能注册成功
解决方案 »
- MSHFlexGrid 分割单元格
- 整整3天了,我快疯了~activex问题求助
- 求助:GetWindowText的问题
- 串口同步方式下读写的一个诡异问题~~~~~~~
- MFC中,怎样把已知网站的网页内容复制下来?
- 请问:我正在看程序,在对话框中,没有添加任何控件,既能显示图片又能播放flash和视频,这是怎样实现的?控件是用类描述的,请问这是怎
- 谁有光盘《Visual C++高级编程》? --送分
- 紧急!!!! 在线等待!!请高手相助!!!ADO数据库+多线程
- 请版主和诸位大侠都来看看吧,上次浪费我二百分也没问出结果,这次再出百分,就是怎样创建IShellBrowser的对象?
- 怎样知道窗口是否被置于顶层topmost
- "22:30"怎么转化为ctime
- SHFileOperation错在哪里?
Wndclass.hbrBackground = (HBRUSH) GetStockObject (COLOR_APPWORKSPACE + 1) ;中多了一个GetStockObject ,谢谢楼上兄弟的参与!