vc++基础班[10]---对话框响应鼠标及键盘消息
------------------------------------------ Begin ----------------------------------------
①、各种各样的常用鼠标消息:
WM_MOUSEMOVE 鼠标移动位置
WM_LBUTTONDOWN 鼠标左键按下
WM_LBUTTONUP 鼠标左键弹起
WM_LBUTTONDBLCLK 鼠标左键双击
WM_RBUTTONDOWN  ...
------------------------------------------ Begin ----------------------------------------------
定时器(Timer)在 Windows 的程序设计中很多地方都能用到,他的主要用途是按程序的设定间隔时间,间歇性的产生 WM_TIMER 消息,发送到指定窗口
之后,在窗口中对 WM_TIMER 消息进行处理,完成指定的任务!
①、定时器函数的讲解:
◆ 定时器启动函数:SetTimer
◆ 定时器响应函数:OnTimer
◆ 定时器结束函数:KillTimer
时间间隔范围:USE...
================================
①、控件绑定变量的删除;
②、MFC 与 SDK API 中同名函数的问题:
◆ 回到作用域内;
◆ 获取窗口句柄;
void CMFC0830Dlg::showMsg()
{
//AfxMessageBox(_T("fuck"));
SetDlgItemText(IDC_EDIT_MAIN, _T("111111"));
}
void showMyMsg()
{
CWnd* p_wnd = AfxGetMainWnd();
HWND m_hwnd = p_wnd-&g...
教程方面从刚开始的
《Vc++控件使用》
《VC++界面库编程》、
《Vc++动态库编程》
《WinSock 异步I/O模型》
《Vc++打造局域网聊天室》
《Vc++打造服务管理器》
《C语言黑客编程》
到中期的
《VC++基础班》
《VC++高级班之窗口篇》
《VC++高级班之注册表篇》
《VC++高级班之多线程篇》
《VC++高级班之数据库篇》
《VC++高级班之网络编程篇》
《VC+...
vc++基础班[7]---对话框控件的变量绑定
------------------------------------------ Begin ----------------------------------------------
对话框控件不同类型成员变量的绑定:
DDX : Dialog Data Exchange 对话框数据交换
DDV : Dialog Data Validate 对话框数据校验
一个控件可以绑定多个不同类型的变量;
①、控件类型变量绑定的两种方法 - 数据交换机制:
◆ 利用 GetDlgItem 函数;
◆ 利用 VC向导绑定,对产生...
vc++基础班[6]---对话框之间的数据传递
------------------------------------------ Begin ----------------------------------------------
以模态对话框为例给大家讲解,非模态的大家可以在课后自己练习,也算是给大家留的一个小作业吧!
①、全局变量法:
声明全局变量: extern CString str_text;
②、主对话框法:AfxGetMainWnd();
③、父窗口法:GetParent();
④、成员变量、成员函数法;
①、模态对话框与非模态对话框的区别:
具体见演示!
②、新对话框资源的添加及相关类的绑定:
③、模态对话框的创建:CDialog::DoModal
④、非模态对话框的创建:CDialog::Create
堆中申请内存:new、malloc
静态存储区域:全局变量
◆ 解决一闪而过的问题,为什么模态的不会发生这种情况呢?
◆ 解决重复创建的问题;
⑤、对话框的初始化工作:
◆ 在 OnInitDialog() 函数中进行,如果没有的话需自己进行添加;
◆ // TODO: Add extra initialization here 提示在哪加代码就在哪加,否则会...
CString常用操作讲解
------------------------------------------ Begin ----------------------------------------------
①、CString 类对象的初始化:
CString str;
CString str1(_T("abc"));
CString str2 = _T("defg");
TCHAR szBuf[] = _T("kkk");
CString str3(szBuf);
CString str4 = szBuf;
TCHAR *p = _T("1k2");
...
Ansi与Unicode-续集
----------------------------------------------------------------------------------------
①、Ansi与Unicode简要说明及各自的优缺点:
他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用char格式表示一个字符,占用一个字节的存储空间,最多表示255个字符,
表示英文还可以,但对于中文、日文、韩文等语言来说就不够用了,所以如果你的程序是Ansi编码的话,
那么你写的中文语言的程序拿到日文、韩文等系统上面就会出现乱码。所以有了Uni...
----------------------------------------------------------------------------------------
①、Ansi与Unicode简要说明及各自的优缺点:
他们是两种字符的编码格式,Ansi=窄字节,Unicode=宽字节,Ansi用char格式表示一个字符,占用一个字节的存储空间,最多表示255个字符,
表示英文还可以,但对于中文、日文、韩文等语言来说就不够用了,所以如果你的程序是Ansi编码的话,
那么你写的中文语言的程序拿到日文、韩文等系统上面就会出现乱码。所以有了Unicode,用二个字节去表示一个字符...
①、编程环境:
操作系统:Windows XP Professional Sp3
编译器:
Visual Studio 2008 Professional + Sp1 + Visual Assist X
②名词解释:
C语言、C++、JAVA 等等,都是编程语言,而 Visual C++(简称VC++或者VC)、VB、Delphi 等等都是编程工具,是一个软件而已!
API - Application Programming Interface 应用编程接口,接口实际上就是函数。
SDK - Software Development Kit 软件开发...
char *gyarmyWideCharToAnsi(wchar_t *pWideChar)
{
if (!pWideChar) return NULL;
char *pszBuf = NULL;
int needBytes = WideCharToMultiByte(CP_ACP, 0, pWideChar, -1, NULL, 0, NULL, NULL);
if (needBytes > 0){
pszBuf = new char[needBytes + 1];
ZeroMemory(pszBuf, (needBytes + 1)*sizeof(cha...
花了2000大洋,学习手游的辅助编写, 现在还在恶补 vc的基础课程。。
这里,用这篇博客,记录一下这次的培训吧。。
List
(双向链表) 是一个线性链表结构,它的数据由若干个节点构成,每一个节点都包括一个信息块(实际存储的数据)、一个前驱指针和一个后驱指针。 它无需分配指定的内存大小且可以任意收缩,这是因为它存储在非联系的内存空间中,并且由指针将有序的元素连接起来。
测试代码1:
#include "iostream"
#include "list"
using namespace std;
void main()
{
list<int> l;
cout << l.size() << endl;
for (i...