Win32+API学习笔记:创建基本的窗口控件
创建一个标签
CreateWindowEx(0, "static", "姓名:",
WS_CHILD | WS_VISIBLE | SS_NOTIFY,
12, // xpos
414, // ypos
90, //width
21, //height
hwnd_frame, (HMENU)id_lbl_name, g_hInstance, NULL) ;
1. 如果一个Static控件带上了SS_NOTIFY属性,则会在父窗口里响应STN_CLICKED、STN_DBLCLK、STN_DISABLE 和STN_ENABLE四种消息。
2. id_lbl_name 是一个整型数字,起到标识符的作用。
创建一个单行文本框
hwnd_t_name = CreateWindowEx(WS_EX_CLIENTEDGE, "edit", "这里可以输入初始内容",
WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL,
100, // xpos
410, // ypos
461, //width
21, //height
hwnd_frame, (HMENU)id_t_name, g_hInstance, NULL);
1. 加上 ES_AUTOHSCROLL 属性,才能确保文本内容宽度超过文本框的宽度时,可以按键盘向右移动,达到显示全部内容的目地。
2. 更新文本框内容
SetWindowText(hwnd_t_name, "abcdefg");
3. 获取文本框内容
char name[1024];
GetWindowText(hwnd_t_name, name1024);
创建一个按钮
hwnd_b_source_folder = CreateWindowEx(0, "button", "选择...",
WS_CHILD | WS_VISIBLE, // | WS_DISABLED
571, // xpos
8, // ypos
96, //width
25, //height
hwnd_frame, (HMENU)id_b_source_folder, g_hInstance, NULL) ;
创建一个复选框
hwnd_ck_quality = CreateWindowEx(0, "button", "高",
WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX,
21, // xpos
128, // ypos
68, //width
19, //height
hwnd_frame, (HMENU) id_ck_quality, g_hInstance, NULL);
1. 其中 "button" + BS_AUTOCHECKBOX 表示为一个复选框
2. 判断一个复选框是否选中
IsDlgButtonChecked(hwnd_frame, id_ck_quality)
创建一个下拉列表框
hwnd_c_image_quality = CreateWindowEx(0, "combobox", "Text",
WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST,
300, // xpos
69, // ypos
130, //width
300, //height
hwnd_frame, (HMENU)id_c_image_quality, g_hInstance, NULL);
1. 给 combobox 添加一项
void combobox_add_item(HWND hwnd_combobox, char *text)
{
int index = (int)SendMessage(hwnd_combobox, CB_ADDSTRING, -1, (LPARAM)text);
if(index == 0)
{
SendMessage(hwnd_combobox, CB_SETCURSEL, index, 0);
}
}
2. 添加一项到下拉列表框
combobox_add_item(hwnd_c_image_quality, "高");
combobox_add_item(hwnd_c_image_quality, "中");
combobox_add_item(hwnd_c_image_quality, "低");
3. 设置当前选择的index
SendMessage(hwnd_c_image_quality, CB_SETCURSEL, 1, 0);
4. 获取选择的index
LRESULT quanlity = SendMessage(GetDlgItem(hwnd_frame, id_c_image_quality), CB_GETCURSEL, 0, 0);
创建进度条
hwnd_progressbar = CreateWindowEx(0, "msctls_progress32", "",
WS_CHILD | WS_VISIBLE , // | WS_DISABLED
12, // xpos
451, // ypos
549, //width
21, //height
hwnd_frame, (HMENU)id_progressbar, g_hInstance, NULL) ;
1. 初始化进度条的最小值和最大值
SendMessage(hwnd_progressbar, PBM_SETRANGE, 0, MAKELPARAM(0, 100));
2. 更新进度
SendMessage(hwnd_progressbar, PBM_SETPOS, 80, 0L);
3. 重置进度条位置为0
SendMessage(hwnd_progressbar, PBM_SETPOS, 0, 0L);
创建一个WS_EX_TOOLWINDOW样式的窗口
hwnd_log_frame = CreateWindowEx(
WS_EX_TOOLWINDOW, /* Extended possibilites for variation */
"CodeBlocksWindowsApp", /* Classname */
"日志", /* Title Text */
WS_SYSMENU | WS_SIZEBOX, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
460, /* The programs width */
168, /* and height in pixels */
hwnd_parent, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);
WS_EX_TOOLWINDOW,带有这个属性的窗口有以下特点:
1. 不在任务栏显示。
2. 不显示在Alt+Tab的切换列表中。
3. 在任务管理器的窗口管理Tab中不显示。
4. 标题栏没有图标,标题栏的高度很小,很特珠的一个窗口
创建一个无边框的窗口
hwnd_ad_window = CreateWindowEx(
0, /* Extended possibilites for variation */
"CodeBlocksWindowsApp", /* Classname */
"ad_window", /* Title Text */
WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_POPUP, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
400, /* The programs width */
16, /* and height in pixels */
hwnd_parent, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);
2012-09-13
Win32+API学习笔记:创建基本的窗口控件的更多相关文章
- COCOS学习笔记--Button类及其相关控件属性
一.Button介绍 Button就是button.Cocos中提供了Button类对button进行相关的操作.我们看一下Button类继承关系图: 能够看到.Button是继承自Widget类,W ...
- Android学习笔记(七)——常见控件
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Android 给我们提供了大量的 UI控件,下面我们简单试试几种常用的控件. 一.TextView 在布局文 ...
- Android学习笔记50:使用WebView控件浏览网页
在Android中,可以使用Webview控件来浏览网页.通过使用该控件,我们可以自制一个简单的浏览器,运行效果如图1所示. 图1 运行效果 1.WebView 在使用WebView控件时,首先需要在 ...
- Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法
在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...
- Excel开发学习笔记:界面交互与控件的布局
遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. , ).value ...
- C# 学习笔记 三层架构系列(控件一)
下面是我两周的学习总结:这是我写给自己的,如果哪位朋友有幸看到这篇文章就是缘分.如果所说的内容不对,就请纠正.勿喷!!! 想要将两周的学习知识通过文字.通过代码.通过图片储备起来,以防自己那天思维短路 ...
- 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.10.Button 和 Autocomplete控件
Button ,可以使用 <button> <input> <a>. <input> 中的不同类型,submit , radio , checkbox ...
- Unity3D学习笔记(一)GUI控件的调用
GUI控件:1.在Start中初始化,在OnGUI中调整.2.公有变量才会出现在Inspector面板.3.GUI控件的初始化和处理在OnGUI内完成.4.JavaScript的中文为UTF-8编码可 ...
- Tornadofx学习笔记(2)——FxRecyclerView控件的打造
Tornadofx是基于javafx的一个kotlin框架,用来写些电脑版的小程序 基于Scroll Pane控件,仿造Android中的RecyclerView,实现的一款tornadofx的控件 ...
随机推荐
- 奔跑吧Linux
刚拿到MiZ702,就被他的"外貌"深深的吸引,核心板加底板的形式让她看上去,强大而神秘-- 华丽的外表之下是否有着与之相当的内含呢,我们拿Linux将其检验一番! 板载的TF卡里 ...
- java maven项目迁移时缺失jar包 或者 maven jar包缺失时的解决方案
这样弄完,jar包就都下载好了,就不缺失了. 从GitHub上checkout一个项目下来,导入idea后发现加载依赖奇慢无比,所以临时把网络调成FQ的代理,结果会发现idea会停止之前的下载,那怎么 ...
- python编码你需要知道的编码风格
此时你已经可以写一些更长更复杂的 Python 程序,是时候讨论一下 编码风格 了.大多数语言可以写(或者更明白的说, 格式化 )作几种不同的风格.有些比其它的更好读.让你的代码对别人更易读是个好想法 ...
- aiohttp基本及进阶使用
客户端使用 发起请求 让我们从导入aiohttp模块开始: import aiohttp 好啦,我们来尝试获取一个web页面.比如我们来获取下GitHub的时间轴. async with aiohtt ...
- c语言数字图像处理(三):仿射变换
仿射变换及坐标变换公式 几何变换改进图像中像素间的空间关系.这些变换通常称为橡皮模变换,因为它们可看成是在一块橡皮模上印刷一幅图像,然后根据预定的一组规则拉伸该薄膜.在数字图像处理中,几何变换由两个基 ...
- Kaggle入门(一)——Digit Recognizer
目录 0 前言 1 简介 2 数据准备 2.1 导入数据 2.2 检查空值 2.3 正则化 Normalization 2.4 更改数据维度 Reshape 2.5 标签编码 2.6 分割交叉验证集 ...
- CryptoZombies学习笔记——Lesson2
第二课是僵尸猎食,将把app变得更像一个游戏,添加多人模式,建立更多创造僵尸的方法. chapter1 依然是简介 chapter2:映射和地址 映射相当于一个索引,指向不同地址,不同地址存储的数据不 ...
- Centos6.5下进行PHP版本升级
http://blog.csdn.net/aliveqf/article/details/70444387
- [沈航软工教学] 学生项目Coding地址汇总
同学们把自己的coding主页链接贴在评论里,要求格式"班号+学号+coding主页链接",如: "1301+13061193 + https://coding.net/ ...
- 《Linux内核分析》 第六周
<Linux内核分析> 第6周 一.进程的描述 1.进程控制块PCB 2.linux下的进程转化图 TASK_RUNNING可以是就绪态或者执行态,具体取决于系统调用 TASK_ZOMBI ...