首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

2012-08-21 
菜单和其他资源(4)之对话框的建立与如何添加窗口左上角的小ICON图标前面的博客有一篇专门写了《如何创建自

菜单和其他资源(4)之对话框的建立与如何添加窗口左上角的小ICON图标

前面的博客有一篇专门写了《如何创建自己的ICON图标》,在讲对话框之前,先讲一下如何修改窗口左上角的小图标,这个跟exe的ICON图标有点不一样,不是直接在CreateWindow的倒数第三个参数=LoadIcon(NULL,MAKEINTRESOURCE(ICONID))就行了,这样只是对exe大图标有用,详细请看我的前面的博客。

其实32X32和16X16的ICON图标的ID是一样的。这两者的创建都是一样的,有什么疑问请看博客:菜单和其他资源(1)如何画自己的ICON图标。

 

这里创建了两个ICON图标,一个16X16的,一个是32X32的

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标         菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

 

32X32的这样加载:

wndclass.Icon=LoadIcon(NULL,MAKEINTRESOURCE(ICONID));


16X16的这样加载:

SendMessage(hwnd, WM_SETICON, (WPARAM)TRUE, (LPARAM)LoadIcon(GetModuleHandle(NULL), (LPCTSTR)ICONID));

 

//hWnd为窗口句柄//TRUE表示用大图标//GetModuleHandle(NULL)表示获得当前应用程序实例//IDI_APP为当前程序资源中一个图标的ID//如果提示找不到IDI_APP,请在该文件前几行添上一句#include "resource.h",这样才会把资源ID载入



看看效果吧:

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

 

ICON讲到这里,下面看看如何创建自己的对话框

现在讲的是最简单的,只是说明一下,如何创建的问题,后面的博客会有更复杂的对话框。

1新建一个win32项目,然后编写自己的代码;

2新建资源,创建自己的ICON和MENU

3新建资源,创建自己的对话框,在编辑对话框的时候,可也拖拽控件,just like C#(对话框里面拉一个picture,type改成Icon,Image改成ICONID)

对话框也可以添加菜单等等。。。

 

看看具体的代码:

#include<windows.h>#include"resource.h"BOOL CALLBACK DialogProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);//声明一个对话框过程函数LRESULT CALLBACK WindowProc(  HWND hwnd,      // handle to window  UINT uMsg,      // message identifier  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter);HINSTANCE hInst;int WINAPI WinMain(  HINSTANCE hInstance,      // handle to current instance  HINSTANCE hPrevInstance,  // handle to previous instance  LPSTR lpCmdLine,          // command line  int nCmdShow              // show state){static TCHAR szAppName[]=TEXT("leimingzi");HWND hwnd;MSG msg;WNDCLASS wndclass;//HWND hDlg;HMENU hMenu;hInst=hInstance;wndclass.cbClsExtra=0;wndclass.cbWndExtra=DLGWINDOWEXTRA;wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);wndclass.hIcon=LoadIcon(NULL,MAKEINTRESOURCE(ICONID));//exe大图标wndclass.hInstance=hInstance;wndclass.lpfnWndProc=WindowProc;wndclass.lpszClassName=szAppName;wndclass.lpszMenuName=NULL;wndclass.style=CS_HREDRAW|CS_VREDRAW;if(!RegisterClass(&wndclass))//注册窗口{MessageBox(NULL,TEXT("the program require the window nt"),TEXT("tips"),MB_ICONERROR);return 0;}hMenu=LoadMenu(hInstance,MAKEINTRESOURCE(MENUID));//加载菜单hwnd=CreateWindow(  szAppName,  // registered class name  TEXT("this is title"), // window name  WS_OVERLAPPEDWINDOW,        // window style  CW_USEDEFAULT,                // horizontal position of window  CW_USEDEFAULT,                // vertical position of window  CW_USEDEFAULT,           // window width  CW_USEDEFAULT,          // window height  NULL,      // handle to parent or owner window  hMenu,          // menu handle or child identifier  hInstance,  // handle to application instance  NULL        // window-creation data);//hDlg=CreateDialogParam(hInstance,MAKEINTRESOURCE(DIALOGID),hwnd,NULL,NULL);ShowWindow(hwnd,nCmdShow);UpdateWindow(hwnd);while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK WindowProc(  HWND hwnd,      // handle to window  UINT uMsg,      // message identifier  WPARAM wParam,  // first message parameter  LPARAM lParam   // second message parameter){static HINSTANCE hinstance;static HWND hDlg;static HICON hIcon;switch(uMsg){case WM_CREATE:hinstance=((LPCREATESTRUCT)lParam)->hInstance;SendMessage(hwnd, WM_SETICON, (WPARAM)TRUE, (LPARAM)LoadIcon(GetModuleHandle(NULL), (LPCTSTR)ICONID));//添加窗口小图标return 0;case WM_COMMAND:switch(LOWORD(wParam))//菜单事件处理{case ID_HELP_HELP:DialogBox(hinstance,MAKEINTRESOURCE(DIALOGID),hwnd,DialogProc);//弹出一个模态对话框MessageBeep(0);//发出系统声音break;}return 0;case WM_DESTROY:PostQuitMessage(0);return 0;}return DefWindowProc(hwnd,uMsg,wParam,lParam);}BOOL CALLBACK DialogProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam){switch(uMsg){case WM_INITDIALOG://初始化对话框return TRUE;case WM_COMMAND:switch(LOWORD(wParam)){case IDOK:EndDialog(hDlg,0);return TRUE;}break;}return FALSE;}


图标的创建:

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

 

效果图

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

 

菜单和其他资源(4)之对话框的建立与怎么添加窗口左下角的小ICON图标

 

 

热点排行