2012-08-10 22:56
⁄ 工业·编程
⁄ 共 3914字
与虚拟内存一样,内存映射文件可以用来保留一个地址空间的区域,并将物理存储器提交给该区域。它们之间的差别是,物理存储器来自一个已经位于磁盘上的文件,而不是系统的页文件。一旦该文件被映射,就可以访问它,就像整个文件已经加载内存一样。
内存映射文件可以用于3个不同的目的:
• 系统使用内存映射文件,以便加载和执行. e x e和D L L文件。这可以大大节省页文件空间和应用程序启动运行所需的时间。
...
VC阅读全文
2012-08-10 22:53
⁄ 工业·编程
⁄ 共 1793字
1. 系统何时发送WM_PAINT消息?
系统会在多个不同的时机发送 WM_PAINT 消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一般是通过 InvalidateRect 和 Invalidat...
VC阅读全文
2012-08-10 22:52
⁄ 工业·编程
⁄ 共 599字
一般地,处理WM_PAINT消息的形式如下:
case WM_PAINT: hdc=BeginPaint(hwnd,&ps); //取得设备内容句柄 使用GDI函数; EndPaint(hwnd,&ps); //释放句柄 Return 0;
...
VC阅读全文
2012-08-10 22:51
⁄ 工业·编程
⁄ 共 766字
大多数Windows程序在WinMain中进入消息循环之前的初始化期间都要呼叫函数UpdateWindow。Windows利用这个机会给窗口消息处理程序发送第一个WM_PAINT消息。这个消息通知窗口消息处理程序:必须绘制显示区域。此后,窗口消息处理程序应在任何时刻都准备好处理其它WM_PAINT消息,必要的话,甚至重新绘制窗口的整个显示区域。在发生下面几种事件之一时,窗口消息处理程序会接收到一个WM_PAINT消息:
在使用者移...
VC阅读全文
2012-08-10 22:39
⁄ 工业·编程
⁄ 共 1662字
在WINDOWS中应用程式有三种消息:窗口消息,命令消息,控件消息。
1、窗口消息
一般和窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或从窗口发到系统。发送函数SendMessage()或PostMessage()。包涵的三个变量解释如下: Message-------------WM_XXX wParam---------------定义的命令 lParam----------------定义的命令 WM_XXX能够是许多窗口消息之一,如下列...
VC阅读全文
2012-08-10 22:35
⁄ 工业·编程
⁄ 共 5863字
81. 如何用键盘滚动分割的视口? 我的问题是当我用鼠标滚动分割窗口时,视口滚动都很正常,但用键盘时,却什么也没有发生. 在你的视图继承类中加入如下两个函数,假定该类为CScrollerView: void CScrollerView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { BOOL processed; for (unsigned int i=0;i< nRepCnt&&processed;i++) processed=KeyScroll(nChar); if (!processed) ...
VC阅读全文
2012-08-10 22:34
⁄ 工业·编程
⁄ 共 4373字
71. 隐藏标题栏和菜单栏 隐藏标题栏 ModifyStyle(WS_CAPTION,0) 隐藏菜单栏 SetMenu(NULL) 72. InflateRect InflateRect这个函数用于增大或减小一个矩形的大小. 如m_graphRect.InflateRect(-70, -30, -30, -50); 将矩形左边坐标加70,上面加30,右边减30,下面减50。 73. 怎么让无模式对话框显示在主窗口后面 要解决这个问题的关键在于CDialog的Create并不能建立一个无属主的窗口.必须用另外方式建窗口...
VC阅读全文
2012-08-10 22:32
⁄ 工业·编程
⁄ 共 9674字
61. dlg 上建立View的方法: OnInitDialog() { CDialog:;OnInitDialog(); CRect rectWindows; GetWinodwRect(&rectWindows); CRuntimeClass *pViewClass=RUNTIME_CLASS(CXXXView); CCreateContext *pContext=new CCreateContext; pContext->m_pCurrentDoc=NULL; pContext->m_pCurrentFrame=NULL; pContext->m_pLastView=NULL; pContext->m_pNewDocTemplate=NULL; pConte...
VC阅读全文
2012-08-10 22:31
⁄ 工业·编程
⁄ 共 3434字
51. 如何获得其他程序的图标,并显示在View中 [问题提出] 有的时候,如:类资源管理器会遇到获得程序图标并显示的操作,如何实现呢? [解决方法] SDK函数SHGetFileInfo来获得有关文件的很多信息:如大小图标,属性,类型等. [程序实现] 建立名为My的SDI工程.在OnPaint()函数中加入: void CMyView::OnPaint() { CPaintDC dc(this); // device context for painting HICON hI...
VC阅读全文
2012-08-10 22:28
⁄ 工业·编程
⁄ 共 6363字
41.如何禁止对话框关闭按钮和浮动工具条上的系统菜单 1、禁止对话框中的关闭按钮有二种方法。 第一种方法,用ModiftMenu()涵数来实现: CMenu* pMenu = this->GetSystemMenu(FALSE); pMenu->ModifyMenu(SC_CLOSE,MF_BYCOMMAND | MF_GRAYED ); 第二种方法,用EnableMenuItem()涵数来实现: CMenu* pMenu = this->GetSystemMenu(FALSE); pMenu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRA...
VC阅读全文