目录。对话框 2问题: 2
一、从菜单项调用模式化对话框 2
二、从菜单项调用非模式对话框 3
按钮控件 3
1.问题 3
2.通过资源创建按钮 3
3.通过**动态创建按钮 3
文本框 4多路窗口设计及实现 4
第一种方法 4
第二种方法 6
第十讲 71.实现画点、线、矩形、椭圆的基本功能 7
2.更改框线(类似图形中的描边线)的颜色(增加下划线的**) 8
3.改变画刷(类似图形中的填充色) 8
8.在窗口中贴图 8
第二十讲 9
usb摄像头捕获 9
海康威视摄像头 10
第十二讲 12
一)c语言文件操作 12
1.文件内容写入 12
2.指定位置写入内容 12
3.读取文件 12
4.读取中的乱码问题 12
5.二进制文件和文本文件的区别(第十二讲00:48-01:04,) 13
6. 98341例子 13
二)c++类文件操作用的较少 13
1.写入文件 13
2.读取数据 13
三)win32 api对文件的操作 13
1.打开或创建文件 13
2.写入数据 14
3.读取文件 14
四)mfc对文件的操作 14
1.写文件 14
2.读文件 14
3. “另存为”对话框 14
4.“打开文件”对话框 15
第五讲文本编程 15
5.1 插入符 15
5.1.1 插入符的添加 15
5.1.2 改变插入符(根据字体大小改变) 15
5.1.3 图形插入符 15
5.2 输出文字 16
对话框。问题:
1、对话框位置用**如何实现? movewindow(200, 200, 233, 200);
2、对话框长宽如何获取?
/在对话框的10%,10%处显示按钮。
crect rcdlg;
getwindowrect(&rcdlg);
int dlgheight =
int dlgwidth =
m_"预创建按钮中间显示的名字",
bs_defpushbutton | ws_overlapped |ws_visible | ws_child,crect(dlgwidth,dlgheight,350,90),this,123);
延伸:getclientrect是客户区的大小。
3、如何实现对话框以主窗口为基准进行移动,而不是以屏幕为基准。
pdlg2->setwindowpos(this,0,0,200,200,swp_nosize);
当然,通过修改setwindowpos函数的第一次参数,可实现以其它位置为基准。
/以主框架为基准点。
cmainframe *pmain =(cmainframe *)afxgetmainwnd();pdlg2->setwindowpos(pmain,0,0,200,200,swp_nosize);
4、一次弹出多个不同对话框非模式对话框方式实现。
5、模式化对话框可以实现一次弹出多个不同对话框(同一类)吗。
6、句柄与指针的区别。
7、现有的内容实际上都是调用对话框(即已经在资源里先建好,然后再调出来),如果在动态地增加,如何实现?
8、每一个对话框都有(或指定)一个句柄、指针、id吗?可以根据它们各自的这三个项目进行调用吗?即以下三个问题能否成立:
1)如何获取一个对话框的句柄,并通过句柄调用该对话框?
2)如何获取一个对话框的指针,并通过指针调用该对话框?
3)如何获取一个对话框的id,并通过id调用该对话框?
一、从菜单项调用模式化对话框。
添加对话框资源(idd_dialog1)->新建对应类(cmydlg)
修改或添加菜单项(idm_mydlg1)->建立对象idm_mydlg1、响应command消息的view类成员函数->添加以下**。
void csdsdsview::onmydlg1()
cmydlg dlg;
并增加**#include ""
二、从菜单项调用非模式对话框。
**更改为以下内容,其余不变。
void csdsdsview::onmydlg1()
cmydlg *pdlg=new cmydlg();
pdlg->create(idd_dialog1,this);
pdlg->showwindow(sw_show);
延伸:1.产生框架对话框。
cframewnd* pfrm = new cframewnd;
pfrm->create(null, "窗口的标题");
pfram->showwindow(sw_show);
pmain = afxgetmainwnd();得到主窗口。
if (pmain !=null)
//get the main window's menu.
cmenu* pmenu = pmain->getmenu();
// if there is a menu and it has items, we will delete the first one.
if (pmenu !=null &&pmenu->getmenuitemcount() 0)
// no need to delete pmenu because it is an mfc temporary object.
按钮控件。1.问题。
1.按钮控件有哪些功能?
2.如何实现触发某一事件(如点击按钮)使原先不可见的按钮显示出来?
3.如何使产生的按钮正常显示?高度超出一定的值就不显示了。
ws_overlapped保证不被覆盖?
4.动态创建的按钮如何实现点击响应事件?
2.通过资源创建按钮。
直接增加按钮资源(可选择是否可见)->双击确定->直接添加**。
3.通过**动态创建按钮。
在预创建按钮的对话框类上添加成员变量m_btn1(类型:cbutton)和成员变量m_iscreate(bool型),添加**。
if(m_iscreate==false)
m_"预创建按钮中间显示的名字",bs_defpushbutton | ws_visible | ws_child,crect(0,0,200,90),this,123);
/如没有添加ws_visible需要使用m_
m_iscreate=true;
elsem_
m_iscreate=false;}
延伸:在主窗口显示。
void cmydlg3::onbutton2()
// todo: add your control notification handler code here
cwnd* pmain = afxgetmainwnd();
m_"预创建按钮中间显示的名字",bs_defpushbutton | ws_visible,crect(100,80,200,90),pmain,123);
VC 学习笔记
vc 1 q a 2c 语法 2 杂项 2typedef 2 switch语句 3 include的写法 4 define的用法 4 声明 4函数的整体结构 4 类 4抽象,继承,封装,多态性 5 虚函数 5纯虚函数 5 函数重载 5 const 6 指针和引用传递参数 7 this指针 8 c 构...
VC 学习笔记
vc 1 q a 2c 语法 2 杂项 2typedef 2 switch语句 3 include的写法 4 define的用法 4 声明 4函数的整体结构 4 类 4抽象,继承,封装,多态性 5 虚函数 5纯虚函数 5 函数重载 5 const 6 指针和引用传递参数 7 this指针 8 c 构...
VC学习笔记
进制转换字符串 char buf 8 int pname null itoa pname,buf,16 整形进制转换成进制字符串 this m pname buf updatedata false 格式化字符串 cstring pname int monname null s monname 格式化...