设为首页 加入收藏

TOP

C++windows内核编程笔记day09_day10,对话框和窗口基本控件等的使用(一)
2015-07-20 18:03:01 来源: 作者: 【 】 浏览:4
Tags:windows 内核 编程 笔记 day09_day10 对话 窗口 基本 控件 使用
//设置字体颜色
SetTextColor(hdc,RGB(255,0,0));


//窗口背景
//wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
//wce.hbrBackground=CreateSolidBrush(RGB(0,0,255));


//设置字体背景
SetBkColor(hdc,RGB(0,0,200));
//设置字体背景模式
SetBkMode(hdc,TRANSPARENT);//字体背景透明
//创建字体,成功返回字体,失败返回NULL
HFONT CreateFont(
int nHeight, // 高度
int nWidth, // 宽度
int nEscapement, // 倾斜角度
int nOrientation, // 旋转角度(三维效果)
int fnWeight, // 粗细
DWORD fdwItalic, // 斜体
DWORD fdwUnderline, // 下划线
DWORD fdwStrikeOut, // 删除线
DWORD fdwCharSet, // 字符集(GB2312_CHARSET)
DWORD fdwOutputPrecision, // 输出精度(0)
DWORD fdwClipPrecision, // 剪切精度(0)
DWORD fdwQuality, // 质量(0)
DWORD fdwPitchAndFamily, // 匹配字体
LPCTSTR lpszFace // 字体名称(在C:\Windows\Fonts 打开具体的字体再看第一行名称)
);




对话框窗口
//用户处理对话框指令的函数
//返回TRUE 系统不默认处理;返回FALSE系统处理;
INT_PTR CALLBACK DialogProc( HWND hwndDlg, // handle to dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
//创建对话框
INT_PTR DialogBox( HINSTANCE hInstance, // handle to module
LPCTSTR lpTemplate, // dialog box template
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc // dialog box procedure
);
//模式对话框
result=(int)DialogBox(g_hinstance,MAKEINTRESOURCE(IDD_DIALOG1),hwnd,DialogProc);
int CALLBACK DialogProc(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam)
{
UINT id=LOWORD(wParam);
switch(uMsg)
{
case WM_SYSCOMMAND:
if(wParam==SC_CLOSE)
{
EndDialog(hwnd,1);
return true;
}
break;
case WM_INITDIALOG://对话框创建之后、显示之前if(wParam==SC_CLOSE)
{
return true;
}
break;


}
return false;
}
//非模式对话框
HWND dlg= CreateDialog(g_hinstance,MAKEINTRESOURCE(IDD_DIALOG2),hwnd,DialogProc2);
ShowWindow(dlg,1);
int CALLBACK DialogProc2(HWND hwnd, UINT uMsg,WPARAM wParam,LPARAM lParam)
{
UINT id=LOWORD(wParam);
switch(uMsg)
{
case WM_SYSCOMMAND:
if(wParam==SC_CLOSE)
{
DestroyWindow(hwnd);
return true;
}
break;
case WM_INITDIALOG://对话框创建之后、显示之前
{
return true;
}
break;
}
return false;
}


//程序和子控件消息交互
SendMessage


day72 pm 85
//创建文字静态框,HMENU参数传入控件ID
CreateWindowEx(0,"STATIC","hello",WS_CHILD|WS_VISIBLE,100,100,
200,40,hwnd,(HMENU)1001,g_hinstance,0);
//创建图标静态框,HMENU参数传入控件ID,加入 SS_ICON或SS_BITMAP 风格
//字符串 写 "#资源ID号",风格有 SS_NOTIFY 时,点击才能产生消息
CreateWindowEx(0,"STATIC","#104",WS_CHILD|WS_VISIBLE|SS_ICON,100,100,
200,40,hwnd,(HMENU)1002,g_hinstance,0);
//更改图标
HICON ico=LoadIcon(g_hinstance,MAKEINTRESOURCE(IDI_ICON1));
HWND hs=GetDlgItem(hwnd,1002);//通过窗口句柄和控件ID号获取控件句柄
SendMessage(hs,STM_SETICON,(WPARAM)ico,0);//发消息修改静态图标的图片


按钮:
普通下压式按钮:BS_PUSHBUTTON、BS_DEFPUSHBUTTON
分组框按钮:BS_GROUPBOX
复选框按钮:BS_CHECKBOX、BS_AUTOCHECKBOX、BS_3STATE、BS_AUTO3STATE
单选框按钮:BS_RADIOBUTTON、BS_AUTORADIOBUTTON


//手动维护复选框状态
if(HIWORD(wparam)==BN_CLICKED)
{
HWND cb=GetDlgItem(hwnd,2002);//获取复选框控件
UINT stat= SendMessage(cb,BM_GETCHECK,0,0);//获取当前状态
//设置状态
if(stat==BST_CHECKED) SendMessage(cb,BM_SETCHECK,BST_UNCHECKED,0);
else SendMessage(cb,BM_SETCHECK,BST_CHECKED,0);
}
//手动维护3种状态复选框的状态
//WM_COMMAND中,HIWORD(wparam):菜单-0,加速键-1,控件-通知码(BN_CLICKED/STN_CLICKED等)
//lparam:菜单、加速键-NULL,控件:控件句柄
if(HIWORD(wparam)==BN_CLICKED)
{
UINT id=LOWORD(wparam);
HWND cb=GetDlgItem(hwnd,id);
UINT stat= SendMessage(cb,BM_GETCHECK,0,0);//获取当前状态
//
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva 11290 - Gangs(卡特兰数) 下一篇HDU 4883 TIANKENG’s restaurant..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: