1、改变窗口大小或全屏窗口可用下面的代码:

MoveWindow(hDlg,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),TRUE);

2、去掉窗口的边框可用下面的代码:

LONG nStyle= GetWindowLong( hDlg, GWL_STYLE);
LONG newStyle= nStyle & (~(WS_CAPTION | WS_BORDER |WS_EX_CLIENTEDGE)); 
SetWindowLong( hDlg, GWL_STYLE, newStyle);

另一种方法:在窗口=》属性中Border属性中选择none即可。

3、在桌面上画图(直线、圆之类),可仿写如下代码:

CWindowDC pDC(GetDesktopWindow());

CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));

CBrush *pOldBrush=pDC.SelectObject(pBrush);

pDC.Ellipse(CRect(fCx-fR, fCy-fR, fCx+fR,fCy+fR));

pDC.SelectObject(pOldBrush);

ReleaseCapture();

需注意:3是在对话框里调用,如果在非对话框中调用CWindowDC pDC(GetDesktopWindow()),则会提示GetDesktopWindow()无法转换成CWnd*的编译错误,再看GetDesktopWindow()的定义:

_AFXWIN_INLINE CWnd* PASCAL CWnd::GetDesktopWindow()

{ return CWnd::FromHandle(::GetDesktopWindow()); }

可见GetDesktopWindow()内部调用的是Cwnd的成员函数FromHandle,如果你调用GetDesktopWindow()的地方不再Cwnd或其派生类中,肯定编译不过,此时的解决办法是直接调用CWnd::FromHandle(::GetDesktopWindow())而不是GetDesktopWindow();也即:档你的代码不是在Cwnd及其派生类中时,需如下写:

CWindowDC pDC(CWnd::FromHandle(::GetDesktopWindow()));

CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));

CBrush *pOldBrush=pDC.SelectObject(pBrush);

pDC.Ellipse(CRect(fCx-fR, fCy-fR, fCx+fR,fCy+fR));

pDC.SelectObject(pOldBrush);

ReleaseCapture();

4、下面的代码可以通过窗口的名字找到置顶的窗口对象

CWnd*m_TestWnd =  FindWindow(NULL,_T("Hello,Test window"));

if (NULL != m_TestWnd )

{

m_TestWnd ->ShowWindow(SW_HIDE);

}

上述代码可以将窗口隐藏,如果将隐藏的窗口显示则调用ShowWindow(SW_SHOWNORMAL);

5、将某窗口置顶,需要窗口句柄作为参数

::SetForegroundWindow(m_pTestDlg->m_hWnd);

6、下面的代码可以让整个桌面重绘

::InvalidateRect(NULL,&CRect(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)),FALSE);

7、下面的代码可以让代码所在的对话框重绘

InvalidateRect(NULL);

UpdateWindow();

8、下面的代码可以在按钮操作之后修改其caption

CString csValue;
GetDlgItemText(IDC_BTN_VIDEO_CAP,csValue);
if (_T("拍摄") == csValue)
{
GetDlgItem(IDC_BTN_VIDEO_CAP)->SetWindowText(_T("停止"));
......

else
{
GetDlgItem(IDC_BTN_VIDEO_CAP)->SetWindowText(_T("拍摄"));
......
}

9、向指定窗口发送消息

PostThreadMessage(m_nThreadID,MSG_2_THREAD_DEBUG_MODEL,0,0)

10、设置窗口透明度

   (1)设置窗口的WS_EX_LAYERED属性,使用函数SetWindowLong

(2)设置窗口的透明度,使用函数SetWindowLong

例如:

BOOL CDlgMain::OnInitDialog()
{CDialog::OnInitDialog();// TODO:  在此添加额外的初始化SetWindowLong(m_hWnd,GWL_EXSTYLE, GetWindowLong(m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);SetLayeredWindowAttributes(0,0, LWA_ALPHA);
...
}

11、获取指定窗口的句柄

GetDlgItem(IDC_STATIC_VIDEO)->GetSafeHwnd()

12、List Control 用法

CListCtrl m_TransList;

.......

m_TransList.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);
 m_TransList.SetExtendedStyle(m_TransList.GetExtendedStyle()|LVS_EX_GRIDLINES);
 
 m_TransList.InsertColumn(0,L"课程名称",LVCFMT_CENTER,160);
 m_TransList.InsertColumn(0,L"课程/事务类别",LVCFMT_CENTER,80);
 m_TransList.InsertColumn(0,L"事务名称",LVCFMT_CENTER,160);
 m_TransList.InsertColumn(0,L"登陆学生数",LVCFMT_CENTER,80);
 m_TransList.InsertColumn(0,L"当前状态",LVCFMT_CENTER,80);
    m_TransList.InsertColumn(0,L"上课开始时间",LVCFMT_CENTER,160);
 m_TransList.InsertColumn(0,L"上课结束时间",LVCFMT_CENTER,160);
 m_TransList.InsertColumn(0,L"频道ID",LVCFMT_CENTER,80);
 m_TransList.InsertColumn(0,L"事务ID",LVCFMT_CENTER,80);

int icounter =0;
 TransInform temp_translist;
 map<CString,TransInform>::const_iterator map_it =Global_TranList.begin();
 for(;map_it!=Global_TranList.end();icounter++,map_it++)
 {
  temp_translist.Clear();
  temp_translist =map_it->second;
  m_TransList.InsertItem(icounter,temp_translist.m_ChnID);//在每一行的开始的第一列必须用InsertItem函数,该行的以后的各列用函数SetItemText
  //AfxMessageBox(temp_translist.m_ChnID);
  m_TransList.SetItemText(icounter,1,temp_translist.m_TransID);
  m_TransList.SetItemText(icounter,2,temp_translist.m_CourseName);
  m_TransList.SetItemText(icounter,3,temp_translist.m_Type);
  m_TransList.SetItemText(icounter,4,temp_translist.m_TransName);
  m_TransList.SetItemText(icounter,5,temp_translist.m_StuNum);
  m_TransList.SetItemText(icounter,6,temp_translist.m_State);
  m_TransList.SetItemText(icounter,7,temp_translist.m_StartTime);
  m_TransList.SetItemText(icounter,8,temp_translist.m_EndtTime);
 }

13、窗体最大化 

int iSX = GetSystemMetrics(SM_CXSCREEN);
 int iSY = GetSystemMetrics(SM_CYSCREEN);

iSY -= 26;
 ::SetWindowPos(m_hWnd, HWND_TOP, 0, 0, iSX, iSY, SWP_SHOWWINDOW);

14、MFC中如何擦除在桌面上的绘图?

//获取屏幕的长度和宽度

int iWidth = GetSystemMetrics(SM_CXSCREEN); //
 int iHeight = GetSystemMetrics(SM_CYSCREEN); 
 ::InvalidateRect(NULL,&CRect(0,0,iWidth,iHeight),FALSE);//重绘该区域

MFC 常见窗口操作相关推荐

  1. MFC常见控件:滚动条控件

    MFC常见控件:滚动条控件 1. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.列表框和组合框设置了相应属性后,如果列表项显示不下也会出现滚动条.滚动条分为水平滚动条(Ho ...

  2. Windows下常用的100个CMD指令以及常见的操作

    为什么80%的码农都做不了架构师?>>>    Windows下常用的100个CMD指令以及常见的操作 常用的100个CMD指令 gpedit.msc-–组策略 2. sndrec3 ...

  3. mfc 子窗口 跟随 主窗口

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://shujiantang.blogbus.com/logs/29644154.html 前不久做了一个MFC项目.项目做完 ...

  4. MFC学习笔记--MFC创建窗口

    MFC创建窗口 基本说明 过程 消息映射机制 应用例子 利用模版创建窗口 文化建设 基本说明 mfc:微软基础类库(microsoft foundation classes)微软公司提供的类库,以 * ...

  5. c语言mfc窗口跳到下个窗口,MFC停靠窗口实现(CDockablePane)

    工作中编写MFC界面程序时用到了停靠窗口,为了避免之后用到时再去查询,这里记录下. 步骤 1.定义一个继承自CDockablePane的类 Class CDockableTest : public C ...

  6. windows常见窗口样式和控件风格以及类样式

    Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_P ...

  7. Windows常见窗口样式和控件风格

    Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_P ...

  8. MFC底层窗口的实现

    MFC底层窗口的实现 代码: # include <windows.h> //底层实现窗口的文件 //6.处理窗口过程 此过程可先跳过 是最后一步 LRESULT CALLBACK Win ...

  9. python数值运算实例_Python矩阵常见运算操作实例总结

    本文实例讲述了Python矩阵常见运算操作.分享给大家供大家参考,具体如下: python的numpy库提供矩阵运算的功能,因此我们在需要矩阵运算的时候,需要导入numpy的包. 一.numpy的导入 ...

最新文章

  1. 网页表格隔行显示不同颜色,怎样实现?
  2. 1.7-bzip2和bunzip2
  3. MySQL事务的可串行化
  4. 快递公司快递单号规律总结
  5. 一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈...
  6. Windows 下开发PHP扩展资源
  7. 李开复现身说法成功的十个启发
  8. 微信获取位置 转化为 高德地图 位置 地址
  9. 启动和关闭oracle 实例,oracle实例和数据库启动与关闭.ppt
  10. android 关闭线程句柄,android进程与线程详解三:AsyncTask
  11. [转]“新欢乐时光”病毒源代码分析
  12. 吉利GKUI车机任意安装第三方APP软件教程,DNS劫持应用商店安装软件
  13. 伽罗华有限域_伽罗华域(Galois Field,GF,有限域)乘法运算 - MengBoy的专栏 - CSDN博客...
  14. WSJ0数据集简单介绍
  15. 数据分析之--Mataplotlib入门
  16. increment java_Java LongAdder increment()用法及代码示例
  17. 常用CASE工具介绍 ZZ
  18. Python爬虫--Selenium模拟用户的键盘鼠标操作
  19. 计算机网络之网络应用--Email应用
  20. 软工网络15团队作业8——Beta阶段敏捷冲刺

热门文章

  1. 非常全的VS Code快捷键
  2. spark-streaming连接flume时报错org.jboss.netty.channel.ChannelException: Failed to bind to: /IP:PORT
  3. HDFS Shell基本操作总结
  4. Node编码格式的设置
  5. 京瓷1020怎么打印自检页_喷墨打印机如何打印自检页
  6. php和xml区别,php和XML
  7. python找数字程序_程序以查找Python中从1到N的所有缺失数字
  8. 学员使用移动端进行自学的视频动画html,Html5移动端获奖无缝滚动动画实现
  9. linux shell for 循环变量,shell for循环、循环变量值付给其他shell脚本的方法
  10. Python中GIL(全局解释器锁)