1.如何获取应用程序的 实例句柄?
应用程序的实例句柄保存在CWinApp m_hInstance 中,可以这么调用AfxGetInstancdHandle获得句柄.
Example: HANDLE hInstance=AfxGetInstanceHandle()
2.如何通过代码获得应用程序主窗口的 指针?
主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。
 AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)
//使程序最大化.
3.如何在程序中获得其他程序的 图标?
两种方法:
 (1) SDK函数 SHGetFileInfo 或使用 ExtractIcon获得图标资源的 handle,
 (2) SDK函数 SHGetFileInfo 获得有关文件的很多信息,如大小图标,属性, 类型等.
 Example(1):
在程序窗口左上角显示 NotePad图标.
 void CSampleView:
OnDraw(CDC * pDC)
{
if( :: SHGetFileInfo(_T("c:\\pwin95\\notepad.exe"),0,
&stFileInfo,sizeof(stFileInfo),SHGFI_ICON))
{
pDC ->DrawIcon(10,10,stFileInfo.hIcon)
}
}
Example(2):同样功能,Use ExtractIcon Function
void CSampleView:: OnDraw(CDC *pDC)
{
HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(),_T
("NotePad.exe"),0)
if (hIcon &&hIcon!=(HICON)-1)
pDC->DrawIcon(10,10,hIcon)
4.如何编程结束应用程序?
向窗口发送 WM_CLOSE消息,调用 CWnd::OnClose成员函数.允许对用户提示是否保存修改过的数据.
 Example: AfxGetMainWindow()->SendMessage(WM_CLOSE)

还可以创建一个自定义的函数 Terminate Window
 void Terminate Window(LPCSTR pCaption)
 {
 CWnd *pWnd=Cwnd::FindWindow(NULL,pCaption)

if (pWnd)

pWnd ->SendMessage(WM_CLOSE)
 }

5.如何自定义消息
(1) 手工定义消息,可以这么写
#define WM_MY_MESSAGE(WM_USER+100),
MS 推荐的至少是 WM_USER+100

(2)写消息处理函数,用
WPARAM,LPARAM返回LRESULT.
LRESULT CMainFrame::OnMyMessage(WPARAM wparam,LPARAM lParam)

{
 temp目录: Use "GetTempPath"
//加入你的处理函数 irectory"
}
6.如何改变窗口的图标?
向窗口发送 WM_SECTION消息。
 Example:
 HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON)
 ASSERT(hIcon)
 AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM)hIcon)
7.如何改变窗口的缺省风格?
重载 CWnd:: PreCreateWindow 并修改CREATESTRUCT结构来指定窗口风格和其他创建信息.
 Example: Delete "Max" Button and Set Original
Window's Position and Size

BOOL CMainFrame:: PreCreateWindow
(CREATESTRUCT &cs)
 {
 cs.style &=~WS_MAXINIZEMOX

cs.x=cs.y=0
 cs.cx=GetSystemMetrics(SM_CXSCREEN/2)
 cs.cy=GetSystemMetrics(SM_CYSCREEN/2)

return CMDIFramewnd ::PreCreateWindow(cs)
 }
8.如何改变视窗的背景颜色
Windows向窗口发送一个WM_ERASEBKGND消息通知该窗口擦除背景,可以使用ClassWizard重载该消息的缺省处理程序来擦除背景(实际是画),并返回TRUE以防止Windows擦除窗口。
//Paint area that needs to be erased.
BOOL CSampleView : : OnEraseBkgnd (CDC* pDC)
{
// Create a pruple brush.
CBrush Brush (RGB (128 , 0 , 128) )

// Select the brush into the device context .
CBrush* pOldBrush = pDC—>SelcetObject (&brush)

// Get the area that needs to be erased .
CRect reClip
pDC—>GetCilpBox (&rcClip)
//Paint the area.
pDC—> PatBlt (rcClip.left , rcClip.top , rcClip.Width ( ) , rcClip.Height( ) , PATCOPY )

//Unselect brush out of device context .
pDC—>SelectObject (pOldBrush )

// Return nonzero to half fruther processing .
return TRUE
}
9.如何改变窗口标题
调用CWnd : : SetWindowText可以改变任何窗口(包括控件)的标题。
//Set title for application's main frame window .
AfxGetMainWnd ( ) —> SetWindowText (_T("Application title") )

//Set title for View's MDI child frame window .
GetParentFrame ( ) —> SetWindowText ("_T ("MDI Child Frame new title")
)

//Set title for dialog's push button control.
GetDigitem (IDC_BUTTON) —> SetWindowText (_T ("Button new title ") )
如果需要经常修改窗口的标题(注:控件也是窗口),应该考虑使用半文档化的函数AfxSetWindowText。该函数在AFXPRIV.H中说明,在WINUTIL.CPP中实现,在联机帮助中找不到它,它在AFXPRIV.H中半文档化, 在以后发行的MFC中将文档化。
AfxSetWindowText的实现如下:
voik AFXAPI AfxSetWindowText (HWND hWndCtrl , LPCTSTR IpszNew )
{
 itn nNewLen= Istrlen (Ipaznew)
 TCHAR szOld [256]
 //fast check to see if text really changes (reduces
flash in the
controls )
 if (nNewLen >_contof (szOld)
|| : : GetWindowText (hWndCrtl, szOld , _countof (szOld) !=nNewLen
|| Istrcmp (szOld , IpszNew)! = 0
{
 //change it
 : : SetWindowText(hWndCtrl , IpszNew )
 }
}
10.如何改变控件的字体
由于控件是也是窗口,用户可以调用CWnd: : SetFont指定新字体。该函数用一个Cfont指针,要保证在控件撤消之前不能撤消字体对象。下例将下压按钮的字体改为8点Arial字体:
//Declare font object in class declaration (.H file ).
private : Cfont m_font
// Set font in class implementation (.Cpp file ). Note m_wndButton is a
//member variable added by ClassWizard.DDX routines hook the member
//variable to a dialog button contrlo.
BOOL CSampleDialog : : OnInitDialog ( )
{
 …
 //Create an 8-point Arial font
 m_font . CreateFont (MulDiv (8 , -pDC
—> GetDeviceCaps(LOGPIXELSY) ,72). 0 , 0 , 0 , FW_NORMAL , 0 , 0,0, ANSI_CHARSER, OUT_STROKE_PRECIS ,

CLIP_STROKE _PRECIS , DRAFT _QUALITY
 VARIABLE_PITCH |FF_SWISS, _T("Arial") )

//Set font for push button .
 m_wndButton . SetFont (&m _font )


}

转载于:https://www.cnblogs.com/chenfanwen/archive/2006/11/23/570226.html

visual c++ 技术资料(网络收集)相关推荐

  1. C++ 技术资料(大视野网络收集) 1

    C++ 技术资料(大视野网络收集) 用VC制作初始画面 宋端智 贾皓丽 VC命名管道通信的实现 冷山述 用VC修改目录的日期和时间 温卫红 基于人机对战的五子棋游戏 胡朝晖 在ActiveX控件中引入 ...

  2. 有史以来最全面最经典的网络技术资料合集

    │ 子网划分工具.exe │ ├─CISCO │ ├─CCNP Lab │ │     AAA实验.pdf │ │     Backup Interface-v2.pdf │ │     BGP Tr ...

  3. NCNE二级复习资料-网络监视、管理和排错

    NCNE二级复习资料-网络监视.管理和排错 11.1 分析和优化网络性能的关键  瓶颈:瓶颈是网络中限制数据吞吐量的点,它的存在限制了网络整体性能的发挥.  基线:指在给定的时间内网络活动和性能的记录 ...

  4. 国外著名java技术资料网站

    国外著名java技术资料网站 国外著名java技术资料网站 http://www.onjava.com O'Reilly的Java网站. 每周都有新文章 http://java.sun.com 官方的 ...

  5. MTK芯片技术资料大全,各个型号都有,包括原理图数据表等

    记录一下自己整理的mtk芯片技术资料,包括原理图.datasheet.参考设计等资料: 别的不说了,直接上图可能会清楚一点:下载链接下底部 这些资料都是各位小伙伴分享而收集起来的,不敢说说全部的mtk ...

  6. MT8735芯片技术资料解析,MT8735处理器简介

    MT8735芯片技术资料解析,MT8735处理器简介 今天分享一下联发科MT8735型号芯片处理器的基本数据,这里是大概的,只能从部分资料的内容和图片,如果你想要做开发.移植啥的,建议自行下载资料进行 ...

  7. IT十八掌 大数据技术资料+内部资料

    教程介绍: IT十八掌 大数据技术资料+内部资料 目录 技术资料 [IT十八掌大数据_徐培成]001.Hadoop介绍.avi [IT十八掌大数据_徐培成]002.VMware安装.avi [IT十八 ...

  8. 再谈P2P技术:网络拓扑结构、核心技术分析

    随着P2P应用的蓬勃发展,作为P2P应用中核心问题的发现技术除了遵循技术本身的逻辑以外,也受到某些技术的发展趋势.需求趋势的深刻影响. P2P协议概述 P2P打破了传统的Client/Server ( ...

  9. 基于Cortex-M7内核STM32F767NIH6,STM32F767VGT6,STM32F767VIT6嵌入式技术资料

    STM32F7 32 位 MCU+FPU 基于高性能的 ARM®Cortex-M7 32 位 RISC 内核®,工作频率高达 216MHz.Cortex®-M7 内核具有单浮点单元(SFPU)精度,支 ...

最新文章

  1. 15个相见恨晚的 Linux 神器,你可能一个都没见过
  2. Intellij IDEA常用配置详解
  3. eclipse查看mysql代码_在eclipse中查看Android源代码
  4. 版本控制系统 之一 概念、分类、常见版本控制系统(CVS、SVN、BitKeeper、Git 等)
  5. php检测非法字符的一种方法
  6. 前端学习(3287):Aop2
  7. 优秀REST风格 API的设计原则
  8. 你为什么不敢重构代码?听高手亲授秘笈!
  9. 如何用纯 CSS 创作一组昂首阔步的圆点
  10. PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值)
  11. JAVA并发:深入分析volatile
  12. log4j 配置文件参数说明
  13. SPI协议学习Cubmx——读写Flash W25Q64
  14. 上周热点回顾(7.4-7.10)
  15. 解读《Superhuman AI for multiplayer poker》
  16. 基于java的物流信息管理系统(计算机毕业设计)
  17. au3 ui html,AutoIt UI及常用操作
  18. SSM项目秒杀系统---(一)业务分析与Dao层
  19. 在colaboratory上永久安装d21 o(* ̄▽ ̄*)ブ
  20. 在VUE中使用Lottie动画

热门文章

  1. System.ComponentModel.Component : MarshalByRefObject, IComponent, IDisposable
  2. iOS设备控制打印机输出文本
  3. 重塑自己的语音 笔记1
  4. JavaEE实战班第十二天
  5. 在哪个国家生活幸福?24秒看完联合国10年报告
  6. OMG!这1010本书的书名都是什么鬼?
  7. 高效能码农的自我修养:5本书教你怎样科学学习,拒绝无用功
  8. CANOpen网络管理报文
  9. linux 制作yum,Linux制作本地yum
  10. 每周工作4天半可行吗?人社部回应:不宜在企业中广泛推行