1、怎么修改程序图标
2、在dos下我们可以用getchar来等待用户输入一个值。但是到了Windows编程中就不一样
为了解决这个问题,Windows引入了消息机制(也可以叫做回调机制
在程序启动的时候把函数func1要响应【OK】按钮1的点击动作、函数func2要响应【Cancel】按钮的点击动作、函数func3要响应窗口的双击动作等等这些信息告诉Windows,然后当用户执行相应操作的时候Windows就
3、
//HANDLE_MSG的意思就是告诉Windows,当发生WM_COMMAND消息的时候,请
//通知Main_OnCommand函数
4、
//id这个参数是Windows给咱们“送”过来的
不同的控件要有不同的id,控件的名字,在人类社会中名字有可能重名,
hwnd是对话框句柄
Hwnd是当前窗口的句柄,句柄就是把柄!操作一个东西,要先抓住他的把
5、
件类型的简称(按钮简称BTN、文本框简称EDT等等),最后才是控件的真正的
名字。修改按钮的Caption属性(也就是按钮上显示的文字)为“问好”。
编辑Main_OnCommand方法:
.................................................................................................................
..................................................................................................................
6、得到控件中用户输入的文本
GetDlgItemText(hwnd,
第一个参数是对话框的句柄;第二参数就是控件的id(name);第三个参数就是字符串数组的指针;
疑问:为什么不能像MessageBox
当f1
就标记为可以被其他人、函数占用。如果你把这段内存中的指针返回了,那么一旦其他
地方用了这段内存,那么
用GetWindowText、GetDlgItemText
复习:初学者可以认为数组名就是指针,函数只有得到指针,才能直接操作数组中的
数据。
7、
//GetDlgItemText(hwnd,
//第一参数是窗口的句柄,第二个参数是要取得内容的控件的ID
//第三个参数就是字符串指针,第四个参数就是指针指向区域的大小
//为什么不用strlen而用sizeof。
//如鹏网站内搜索搜“strlen,sizeof”区别
TCHAR
//Windows编程中一般都用TCHAR代替char。TCHAR有时候就是char。
//解决Unicode、中文编码问题。
GetDlgItemText(hwnd,IDC_EDITNAME,name,sizeof(name));
//printf是打印到屏幕上
//printf("%s你好",name);
//sprintf是打印到字符串中
//sprintf(字符串,"...",a1,a2,a3....);
TCHAR
····
TCHAR
sprintf(msg,"%s你好",name);
//相当于很多C#、Java语言里的字符串相加
//wsprintf,C语言开发Windows程序的时候用wsprintf代替sprintf
//解决Unicode、中文编码问题
wsprintf(msg,"%s你好",name);
8、
TCHAR
GetDlgItemText(hwnd,IDC_EDTNAME,name,sizeof(name)));
TCHAR
MessageBox(hwnd,
9、
void
{
{
TCHAR
TCHAR
GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));
GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));
int
//数字转换为字符串itoa:int
int
int
TCHAR
itoa(i3,str3,10);
SetDlgItemText(hwnd,IDC_EDIT3,str3);
}
break;
}
C语言里边字符串转换为数字:atoi:ascii
Eg:int
Itoa(i2,str1,10);itoa(int,char,int);//字符串转换为整数,第三个参数就是进制。
10、Get、Set:配对的,设置对话框的值用SetDlgItemText:
GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1));(获得对话框的字符)
SetDlgItemText(hwnd,IDC_EDIT3,str3);