现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-08-10 22:42 工业·编程 ⁄ 共 3890字 评论 1 条
一、实现方法 实现程序的全屏幕其实很容易,它的实现思路就是:首先要自定义一个窗口类,重载该窗口类的OnPaint()或OnDraw()函数,实现具体的窗口显示功能,然后调用API函数GetDeviceCaps(int nIndex )函数来获取当前显示屏幕的尺寸,如nIndex取LOGPIXELSX值可以得到屏幕的宽度(以像素为单位),取LOGPIXELSY值可以得到屏幕的高度。有了屏幕的尺寸还不够,还必须调用一个API函数MoveWindow()用来定位当前窗口到整个屏幕。需要...
阅读全文
2012-08-10 22:39 工业·编程 ⁄ 共 1662字 暂无评论
    在WINDOWS中应用程式有三种消息:窗口消息,命令消息,控件消息。 1、窗口消息 一般和窗口内部运作有关,如创建窗口,绘制窗口,销毁窗口,通常,消息是从系统发到窗口,或从窗口发到系统。发送函数SendMessage()或PostMessage()。包涵的三个变量解释如下: Message-------------WM_XXX wParam---------------定义的命令 lParam----------------定义的命令 WM_XXX能够是许多窗口消息之一,如下列...
阅读全文
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) ...
阅读全文
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并不能建立一个无属主的窗口.必须用另外方式建窗口...
阅读全文
2012-08-10 22:32 工业·编程 ⁄ 共 9674字 评论 1 条
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...
阅读全文
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...
阅读全文
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...
阅读全文
2012-08-10 22:26 工业·编程 ⁄ 共 4520字 暂无评论
31. 如何在编辑控件中以追加的方式添入字符? [问题提出] SetDlgItemText可以向Edit控件中输入字符,发送更新的消息也可是Edit控件显示与其关联的变量的值,但若是向已有的Edit字符后追加字符,该如何做? [程序实现] 建立名为My的对话框工程,添加一个Edit和一个Button控件.Edit的ID=IDC_EDIT1,Button的ID=IDC_BUTTON1.建立和IDC_BUTTON1的响应函数:OnButton1() void CMyDlg::OnButton1()  {   CS...
阅读全文
2012-08-10 22:25 工业·编程 ⁄ 共 5687字 暂无评论
26. VC++中的3D按钮的编程 运行AppWizard生成一个基于对话框的test工程,在对话框中加入一个CButton控件。在CButton控件的General属性页将控件的ID改为IDC_3DTEXTBTN,Caption改为“谁与争疯”,在控件Styles属性页选中OwnerDraw,其余设置保持默认。 用classwizard创建一个新类:C3dTextButton,基类为CButton。为C3dTextButton类添加一个protected的函数void Draw(CDC* pDC, const CRect& rect, UINT state)。如下所...
阅读全文
2012-08-10 22:23 工业·编程 ⁄ 共 2945字 暂无评论
21. 介绍函数过程中一种任意键退出同时能处理消息的实现方法 1. 设置定时器,用于使::GetMessage(...)函数总能快速取到消息. 2. 在函数处理中加入: 函数每执行完一步后执行下面的代码. if (::GetMessage(&msg, 0, 0, 0)) { if (msg.message >= WM_KEYFIRST && msg.message <= WM_KEYLAST) return ; ::TranslateMessage(&msg); ::DispatchMessage(&msg); } else ::Po...
阅读全文