VC++编程获取窗口句柄的方法小结

本文实例讲述了VC++编程获取窗口句柄的方法。分享给大家供大家参考,具体如下:

在VC++编程中常需获取控件或窗体句柄,下面总结了几种方法,还希望大家能多多补充。

1、自身窗口句柄可用AfxGetMainWnd获取。

2、系统中其他APP的窗口句柄可用FindWindow获取(用SPY帮一下忙).

HWND hBtnClose;
HWND hWnd=::FindWindow(NULL,"腾讯QQ系统广播");
if(hWnd)
{
  hBtnClose=GetDlgItem(hWnd,2);
  if(hBtnClose)
  PostMessage(hBtnClose,BM_CLICK,NULL,NULL);
}

3、通过指针获取窗口句柄

HWND hwnd = pwnd->m_hwnd; //得到它的HWND,对象或指针都可以

4、当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数;

5、

HWND GetDlgltem(HWND hDlg,int nlDDlgltem);

6、通过控件ID号获取。

CListCtrl* pleftList = (CListCtrl* )GetDlgItem(IDC_LIST1);
pleftList->GetSafeHandl();

希望本文所述对大家VC++程序设计有所帮助。

(0)

相关推荐

  • VC小技巧汇总之窗口技巧

    本文搜集汇总了VC小技巧的窗口技巧,对于VC程序开发的窗口设计而言有一定的借鉴价值,详情如下: 1.让窗口一启动就最大化 把应用程序类(CxxxApp)的 InitInstance() 函数中的 m_pMainWnd->ShowWindow(SW_SHOW); 改为 m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); 则窗口一启动就最大化显示. 2.如何设置窗口的初始尺寸 在将应用程序类(CxxAPP)的 InitInstance() 函数中加入: m_pMai

  • 用VC++6.0的控制台实现2048小游戏的程序

    首先感谢这位大侠的无私分享,仔细学习这个程序以后收获很多,试着添加一些注释 源程序是从开源中国看到的,原作者是 刘地(sir?) 地址为http://www.oschina.net/code/snippet_593413_46040 geek_monkey于2015年3月5日为拜读该程序,受益匪浅 为了方便自己,以及更多初学者阅读,我试着写了写了注释供参考 我是C语言初学者,如有错误希望指正.轻喷 复制代码 代码如下: #include <stdlib.h> #include <stdi

  • 在VC中隐藏控制台程序窗口的实现代码

    下面就介绍一下,如何隐藏win32 console application的console窗口因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项).首先我们来看一下linker的 /subsystem 选项该选项的语法形式如下: /subsystem:{console|efi_application|efi_boot_service_driver|efi_rom|efi_runtime_driver|native|posix|window

  • C++获取任务栏打开程序窗口示例

    复制代码 代码如下: // File: OpenProgramOnTaskbar.h #pragma once#include <vector> struct TaskInfo {    // 程序名称    CString strProgramName; // 窗口句柄    HWND hWnd;}; class TaskbarInfo{public:    // 回调函数    static BOOL CALLBACK EnumWindowProc(HWND hWnd, LPARAM lP

  • VC实现对话框窗口任意分割

    个人认为简单问题最好就是直接贴源代码,一看就明白,说来说去反而弄不清楚,那我就少废话了,自己看吧,注释很清楚. 先来张图片 1. 新建一个MFC对话框程序MySplitterDlg. 再插入两个Dialog资源 ,这里一定要选择IDD_FORMVIEW类别的对话框,分别新建类CMyFormView0 和CMyFormView1,基类别选CDialog,一定要选择CFormView. 2. CMySplitterDlg中增加WM_CREATE的消息响应,编辑OnCreate() int CMySp

  • VC6实现激活后台窗口最佳方法

    本文实例讲述了VC6实现激活后台窗口最佳方法.分享给大家供大家参考.具体实现方法如下: //激活窗口 SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); HWND hCurWnd = NULL; DWORD lMyID; DWORD lCurID; hCurWnd = ::GetForegro

  • C++ 中CloseHandle 函数--关闭一个句柄

    CloseHandle函数 作用 关闭一个打开的对象句柄. 语法 BOOL WINAPI CloseHandle( _In_ HANDLE hObject ); 参数 hObject 已经打开的有效对象句柄. 返回值 如果函数操作成功,返回值为非零值 如果函数操作失败,返回值为零. 注意: (1)句柄不应该被关闭两次: (2)可以关闭的句柄有控制台输入.控制台屏幕缓冲区等. 头文件 Winbase..h(包括Windows.h) 参考来源:来源:https://msdn.microsoft.co

  • VC++实现输出GIF到窗体并显示GIF动画的方法

    本文讲述了VC++在窗体中显示GIF动画的方法,这是主要代码部分,在这段代码中,VC++将使用GDI技术加载GIF图像,定义GUID数组.定义指针.初始化各成员变量.释放属性对象.释放GUID等资源等. 代码如下: //加载GIF文件 void COutputGIFDlg::OnBrowse() { CFileDialog flDlg(TRUE, "", "", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "GIF|*.

  • VC实现A进程窗口嵌入到B进程窗口中显示的方法

    本文通过一个Demo示例讲述把A应用程序嵌入到B应用程序中显示的方法. 主要代码如下: //在B应用启动时创建A进程 CreateProcess(_T("A.exe"),NULL,NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,NULL,NULL); Sleep(30); HWND hWndChild = FindWindow(_T("AAA"),_T("AAA")); while(!hWndChild)

  • C++之CWnd窗口框架实例

    本文实例讲述了CWnd窗口框架,分享给大家供大家参考.具体分析如下: .h头文件代码如下: 复制代码 代码如下: #include <afxwin.h>    class CMyApp:public CWinApp  {  public:      virtual BOOL InitInstance();  };    //CMainWindow  class CMainWindow:public CWnd  {  public:      CMainWindow();      ~CMain

随机推荐