VC常用技术新编


以下技术,只提供函数名和简单应用事例。详细内容参看MSDN,事例中的代码如无特别说明版权归microsoft所有

1:判断窗口最小化最大化状态
       最小化到任务栏使用IsIconic()函数判断
       最大化通过IsZoomed()函数判断
       GetWindowPlacement(),调用此函数可以获取窗口的正常状态,最大化,最小化。通过WINDOWPLACEMENT结构体进行判断。

2:一个应用程序只有一个实例


       1:使用FindWindow函数,如果发现指定创建已经存在,就退出
              FindWindow第一个参数为查找窗口的类名。
              FindWindow第二个参数为查找窗口的标题名(最好选择这个)
       2:使用Mutex互斥体
       // Create mutex, because there cannot be 2 instances for same application

     HANDLE hMutex = CreateMutex(NULL, FALSE, "ugg");

     // Check if mutex is created succesfully

     switch(GetLastError())

     {

     case ERROR_SUCCESS:

         // Mutex created successfully. There is no instance running

         break;

    case ERROR_ALREADY_EXISTS:

         // Mutex already exists so there is a running instance of our app.

         return FALSE;

     default:

         // Failed to create mutex by unknown reason

         return FALSE;

     }

3:改变窗口或者控件大小和移动窗口或者控件位置



    1:MoveWindow函数,改变窗口的大小和位置

CRect rc;
GetClientRect(&rc);
m_Button.MoveWindow(0, 0, rc.Width(), rc.Height());

2:SetWindowPos函数,可以应用Z轴方向上,改变重叠控件的显示次序。
            void CWinApp::HideApplication()
{
   //m_pMainWnd is the main application window, a member of CWinApp
   ASSERT_VALID(m_pMainWnd);
   // hide the application's windows before closing all the documents
   m_pMainWnd->ShowWindow(SW_HIDE);
   m_pMainWnd->ShowOwnedPopups(FALSE);

 

   // put the window at the bottom of z-order, so it isn't activated
   m_pMainWnd->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0,
      SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
}

4:改变窗口的最大化最小化正常状态



      1:SetWindowPlacement函数
    设置窗口最大化最小化显示状态,通过WINDOWPLACEMENT结构体进行设置
       2:POST,Send这三种SC_MAXIMIZE,SC_MINIMIZE,SC_RESTORE命令消息

       PostMessage(WM_SYSCOMMAND, SC_MAXIMIZE,0);// 最大化

       PostMessage(WM_SYSCOMMAND, SC_ MINIMIZE,0);// 最小化

       PostMessage(WM_SYSCOMMAND, SC_RESTORE,0);// 正常

5:更改窗口或者控件的注册类名



在默认的情况下,MFC的窗口或者控件的注册类名是MFC自动生成,比如Dialog的注册类名为”#32770”,CButton的注册类名为”Button”等,在一些hook应用中,我们可能需要修改这些注册类名。可以采用如下方法
重载窗口或者控件的PreCreateWindows函数,在函数内做如下修改

       BOOL CMyDilaolg::PreCreateWindow(CREATESTRUCT& cs)

{

WNDCLASS wndcls;

       ZeroMemory( &wndcls, sizeof(WNDCLASS) );
 

       wndcls.style = CS_DBLCLKS;

       wndcls.lpfnWndProc = AfxWndProc;

       wndcls.hInstance = AfxGetInstanceHandle();

       wndcls.hIcon = AfxGetApp()->LoadIcon( IDI_APPLICATION );

       wndcls.hCursor = AfxGetApp()->LoadStandardCursor( IDC_ARROW );

       wndcls.hbrBackground = NULL;

       wndcls.lpszMenuName = NULL;

       wndcls.lpszClassName = _T("uggDialog");

     

       AfxRegisterClass( &wndcls );

     

       cs.lpszClass = wndcls.lpszClassName; // 设置控件的注册类名

       return CDialog::PreCreateWindow( cs );

}

时间: 2024-10-01 08:12:02

VC常用技术新编的相关文章

Web前端应用十种常用技术

  Web前端应用十种常用技术,随着JS与XHTML的应用普及,越来越多的web界面应用技术出现在网站上,比如我们常见的日历控件,搜索下拉框等,这些web界面应用技术大大的丰富了网站的表现形式,本文将为您精心推荐十种最常见的web界面应用技术. Web应用程序的界面设计,其核心就是网页设计 ,但它的重点主要是在功能方面.要超越桌面应用程序, Web应用程序必须提供简单.直观和即时响应的用户界面,让他们的用户花更少的精力和时间去完成事情. 以前,我们并没有注意到web应用程序这个方式,但是现在是时

求一本介绍游戏开发常用技术的书

问题描述 求一本介绍游戏开发常用技术的书 求一本介绍游戏开发常用技术的书,就是那些诸如异步加载 预加载 缓冲池什么的,要能够从理论到实现机理都能介绍道的 解决方案 有游戏编程精粹和Windows游戏编程大师等等的. 这个你可以在网上书店搜一下,然后对照着买书,一般书中都会告诉你游戏开发用什么技术的. 有个9秒社团网站和蛮牛网站,这两个是游戏开发网站,有游戏代码和其他的资源,你有时间可以上去逛逛的. 至于其它的只有你慢慢去搜集和学习了.

VC 常用插件和界面库

VC 常用插件 1.Visual Assist(强烈推荐)[url]http://www.wholetomato.com/[/url] VA从5.0一直到现在的VAX,功能越来越强大,除了以前版本中的自动识别各种关键字,系统函数,成员变量,自动给出输入提示,自动更正大小写错误,自动标示错误等等以外,最新的版本中还在 WorkSpace窗口中加入一个VA View,可以更方便的查找工程中的文件.类和变量. 2.WndTabs(强烈推荐)[url]http://www.wndtabs.com/[/u

VC常用的忽悠用语

创业者在向VC融资的时候,必然会面临风险投资(VC)对企业.对创业者,以及对企业所在行业和市场的质疑和调查.在尽职调查期间,有些创业者会耍小手段,忽悠和欺骗投资人.但更多的创业者在跟VC的接触中,则常常被后者忽悠.   忽悠用语之一:保持联系 在某个会议论坛上,一群创业者将某个大牌VC团团围住,VC逐一分发名片之后,有一两个幸运儿拉住VC要沟通一下他们的商业计划.三分钟之后,VC为了尽快摆脱,跟创业者握手及挥手:"保持联系!"然后一路小跑溜之大吉. 在VC的会议室,你和你的创业团队给V

海量运维常用技术:HAProxy网站负载均衡应用

近期朋友刘鑫的网站成功上线并运营了,PV达到了亿级/日的访问量,最前端用的HAProxy+Keepalived双机作的负载均衡器/反向代理,整个网站非常稳定:这让我更坚定了HAProxy+Keepalived作为Web最前端的负载均衡器网站架构设计方案,在这里我也有一点要跟大家申明下:很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事 实是我们通过成功上线的许多网站发现,HAProxy作为前端的负载均衡的稳定性是非常好的,宕机的可能性微乎其微,由于HAProxy我们多用于7层负载均衡

高效算法的常用技术(算法导论)

对于高效算法, 有些比较简单的技术, 如分治法, 随机化, 和递归求解技术. 这边介绍些更为复杂的技术, 动态规划, 贪心算法 当对于复杂问题设计算法时, 首先会想到使用分治法 来解决, 分而治之, 一个很有哲理性的思路, 再复杂的问题都可以不断分解到你可以轻松解决的粒度, 把所有简单问题都解决完后, 组合在一起就得到了复杂问题的解, 可以看出其中典型的递归求解的思路. 使用分治法的要求, 各个子问题是独立 的 (即不包含公共的子子问题,子问题不重叠 ). 如果子问题重叠, 用分治法就比较低效,

AI 创业 5 问,顶级 VC 与技术领袖犀利评审 | 新智元百人会在红杉

2017年2月22日,新智元百人会2月闭门论坛暨新智元创业大赛评审会在红杉资本中国基金会议室召开.来自投资界.企业界和学术界25名评审坐阵,其中包括共同捕猎2017年的"AI 创业独角兽".  新智元"寻找AI 独角兽" 创业大赛从2017年1月 启动至2月21日,共收到100多份BP.本次会议对闯过初审关的 20 家创业企业进行再评审,25名专家评审根据"技术实力"."商业潜力"."团队亮点"和"

VC++常用数据类型转换

 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用.    我们先定义一些常见类型变量借以说明    int i = 100;  long l = 2001;  float f=300.2;  double d=12345.119;  char username[]="张三";  char temp[200];  char *buf;  CString str;  _variant_t v1;  _bstr_t v2;    一.其它数据类型转

动态网页常用技术:用PHP追随变量(cookie和session)

在很多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用一组变量来"追随"访客.实现变量"追随"有很多种方法,比较用得多的是cookie和session.下面我们用时下很流行的PHP为大家讲解一下它们的使用. 一.Cookie的使用 Cookie是网站保存在浏览器客户端的信息,也就是说保存在访客的机器里的变量,一般随着HTTP头发送到客户端.在Cookie生效之后及失效之前,客户每次发