Win32编程笔记

来源:互联网 发布:pkpm施工软件 编辑:程序博客网 时间:2024/04/30 01:58

Afxenddeferregisterclass wincore.cpp注册窗口类

Device context

HDC DC的句柄

CDC 客户区句柄类,封装了作图函数

CclinetDC

CWindowDC

CPen类,画笔的封装

CDC::setROP2()设置绘画模式

创建光标插入符号

Cwnd::createsolidcaret()

Showcaret()

Createcaret()

Gettextextent(cstring& str) 返回字符串的宽度和高度

Gettextmetrics()返回字符的宽度和高度。

路径层

Pdc->Beginpath()

End path()

Selectclippath()

获取背景色

Getbkcolor()

字体

CFont

Createpointfont()

Createfont()

dc.selectobject(font)

cdc::drawtext()

cdc::textout()

cdc::gettextmetrics()获取当前字体的一些信息

设置定时器

Cwnd::settimer()

标准消息:除WM_command消息以外,所有以WM开头的消息。

命令消息:以WM _COMMAND消息表示的消息,菜单,加速键,工具栏按钮

通告消息:

菜单

CMENU

Getmenu()

Getsubmenu()

Checksubitem()

Setmenuitembitmaps()

Enablemenuitem()使菜单项变为不可使用状态。

Setmenu()

MFC菜单项命令更新机制:

Ccmdui-〉enable

Trackpopupmenu()显示右键弹出菜单

Createpopupmenu()

Appendmenu()添加动态菜单

Insertmenu()插入菜单项

动态添加的菜单项如何添加命令的响应?

重画菜单栏

Cwnd::Drawmenubar()

窗口重绘

Invalidate()

字符串数组

CStringArray

低,高字节续

LOWORD()

HIWORD()

获取当前视类的一个指针

Cframewnd::Getactiveview()

Getsystemmetrics()获取一些系统的信息。

获取窗口的文本

Cwnd::Getwindowtext()

获取对话框上面控件的指针

Cwnd::getdlgitem()

获取对跨框子控件的文本

Cwnd::Getdlgitemtext

屏幕坐标到客户区坐标的转换

交换和交验数据

Cwnd::dodataexchange()

获取文本的消息

Wm_gettext

给对话框的子控件发送消息

Senddlgitemmessage()

获取编辑控件选择的文本的消息

EM_GETSEL

设置编辑控件的选择文本(要注意设置焦点)setfocus()设置一个窗口的焦点。

EM_SETSEL

获取一个窗口的矩形区域

Cwnd::getwindowrect()

Cwnd::Setwindowpos()

窗口:

兄弟窗口,共享同一个父窗口的子窗口称为兄弟窗口

活动窗口,活动的窗口setactivewindow()激活一个窗口为活动窗口

前台窗口,后台窗口,应用程序是多线程的,当前线程的窗口称为前台窗口

Bringwindowtotop()把一个窗口放到窗口的顶部

改变一个指定窗口的属性(比如修改控件的消息处理函数)

Cwnd::Setwindowlong()

对话框消息WM_INITDIALOG,在对话框显示之前发送给一个对话框。

获取下一个控件的句柄

Getnextwindow()

获取窗口句柄的函数

Getwindow()

得到下一个控件的句柄

Getnextdlgtabitem()

移动控件的焦点

Getfocus()

Getnextdlgtabitem(getfocus())-〉setfocus()

创建属性表单

CPropertySheet在属性表单的构造函数中,调用addpage,cpropertypage添加属性页。

CPropertyPage

创建向导模式cpropertysheet::setwizardmode()

Setwizardbuttons()

Onwizardnext()虚函数,当下一步按钮被点击的时候调用。

向列表框添加数据clistbox

组合框ccombobox

向导消息onwizardfinish

获得当前应用程序的句柄

Afxgetinstancehandle()返回当前应用程序的一个实例句柄。

Afxregisterwndclass()设定一个窗口类的类型。

Clienttoscreen()转换客户区坐标到屏幕坐标

改变窗口类的属性,在窗口创建之后

Cwnd::Setclasslong();

资源ID号到字符指针的转换

MAKEINTRESOURCE()

窗口程序全局的APP获取

Afxgetapp()

重新调整工具栏的显示

Cframewnd::recalclayout()

显示工具栏

Cframewnd::showcontrolbar()

状态栏

Cstatusbar

设置状态栏上的文字:

CStatusbar:setpanetext()

Cstatusbar:commandtoindex()返回一个状态栏字符ID的索引

Cstatusbar:setpaneinfo()设置指示器面板的信息,比如宽度。

Cstatusbar:getitemrect()得到状态栏指定窗格的矩形区域。

Cstatusbar:setwindowtext()设置状态栏最左端的面板的字符

进度栏cprogressctrl

Cprogressctrl::

自定义消息

Sendmessage()直接把消息发送给消息响应函数

Postmessage()将消息发送到消息队列当中,立即返回

Cframewnd-〉setmessagetext()设置状态栏的文本

Cframewnd-〉getmessagebar()获取状态栏的一个指针

Cwnd::getdescendantwindow()按ID返回一个子孙窗口的指针

CBRUSH::fromhandle()转换一个画刷的对象为画刷的句柄

Getstockobject()得到一个系统定义的画刷。

颜色对话框

Ccolordialog

CHOOSECOLOR结构体

字体对话框

Cfontdialog

CHOOSEFONT结构体

LOGFONT结构体如何创建CFONT对象?

Cfont:createfontindirect()方法返回一个CFONT

切换到其他字体,首先应该释放cfont对象与某个字体相关

Cgdiobject::deleteobject()

编辑控件文本被改变发送的消息EN_CHANGE

改变对话框的背景色

消息:WM_CTLCOLOR

CWND:onctlcolor()

Cwnd::getctrldlgID()返回一个控件的ID

设置文字的背景模式

CDC::setbkmode()

改变单行的编辑控件的背景色?

CDC::setbkcolor()

改变button控件的字体和背景色

Cbutton::drawitem()

如何在一个窗口中显示一幅位图?

构造CBITMAP

创建兼容DC CDC::createcompatiabledc()

选择位图到兼容DC

将兼容DC中的位图贴到当前DC当中(cdc::bitblt())

窗口绘制的过程?

首先擦除窗口背景,然后对这个窗口进行重新绘制。

擦除窗口会发送WM_EARESEBKGND消息

Bitblt()按照1:1的比例拷贝位图。

Stretchblt()可以按照指定的比例压缩或拉伸位图。

得到位图的宽度和高度?

CBitmap::getbitmap()得到一个bitmap结构体BITMAP,里面包含位图的宽度和高度。

WM_DRAW在这个消息处理函数处改变位图的背景,当改变窗口的尺寸时会引起窗口背景的闪烁。

Cdialogbar

Cscrollview

Setscrollsizes()

映射方式

缩放,平移,旋转,斜切,反射。

坐标空间

世界坐标系空间,页面空间,设备空间,物理设备空间

应用程序利用世界坐标空间来完成,旋转,斜切,反射。

WIN32 应用程序把世界坐标系空间和页面空间作为逻辑空间

物理设备空间指应用程序窗口的客户区,完整的窗口,打印机的一页或绘图仪的一页纸。物理设备空间随设备的尺寸所变化。

Setworldtransform()用于把应用程序的映射从世界坐标空间开始。

窗口和视口,页面空间中的矩形被称为窗口,设备空间中的矩形被称为视口。物理空间表示客户区。

设备空间到物理空间的转换,只用于平移,就是把设备空间的原点移到物理空间的原点。

逻辑坐标和设备坐标

Windows必须将逻辑单位转换为设备单位。

Getdevicecaps()返回一些设备信息。

几乎所有的GDI函数都使用逻辑单位。

改变映射模式setmapmode()

在一个视图与一个文档关联完成之后调用

窗口创建完成之后调用的第一个函数oninitialupdate()

Onpreparedc()调整显示上下文的属性。随时根据滚动窗口的位置调整视口的原点。

Setviewpointorg()设置视口的原点

Setwindowsorg()设置窗口的原点

窗口中点击鼠标左键得到的是设备坐标。

DPTOLP()将设备点转换为逻辑点

设备坐标始终表示窗口的左上角。

保存图形和重绘图形?

CMetafileDC

Deletemetafile()删除源文件的句柄

Copymetafile()拷贝一个windows格式的源文件到一个文件

Getenhmetafile()得到一个源文件的句柄。

利用兼容DC保存用户所画的图形?

首先创建一个兼容DC

创建一个兼容位图

CBitmap::createcompatiblebitmap()

在ondraw函数中,将兼容DC拷贝进

文件操作

MFC CFILE类

C++,ifstream,ofstream

WIN32 fopen,fwrite,fread

写注册表

Writeprofilestring()

Getprofilestring()

Regcreatekey()

Regsetvalue()

Regsetvalueex()

Regclosekey()

Regqueryvalue()获取注册表项的值。

Regopenkey()打开注册表项

Regqueryvalueex()得到一个表项的值。

【文档与串行化】

Carchive类

首先创建一个CFILE,然后把CFILE与CARCHIVE结合,利用CARCHIVE的输入输出流进行文件的输入输出。

【CDOCTEMPLATE】

IDR_MAINFRAME中七个字串的含义。

CDOCTEMPLATE::WindowTitle 主窗口标题栏上的字符串

CDOCTEMPLATE::DOCNAME 缺省文档的名称

CDOCTEMPLATE::filenewname 文档类型的名称

CDOCTEMPLATE::FILTERNAME 文档类型的描述和适用于此类型的通配符过滤器

CDOCTEMPLATE::FILTEREXT 文档的扩展名

CDOCTEMPLATE::REGFILETYPEID 如果以::registershellfiletypes()向系统注册表注册新的文件类型,那么该值将出现在HEY_CLASSES_ROOT下。

CDOCTEMPLATE::REGFILETYPENAME 这是存储在注册表内的文件类型的名称。

文档类中获得视类的指针

Getfirstviewposition()

Getnextview()得到一个视图的指针。

在单文档应用程序中,当打开和新建一个文件时会调用CDOCUMENT::deletecontents()

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tiefeng/archive/2008/11/27/3392867.aspx