首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么根据控件名称获取句柄和控件属性

2013-01-12 
如何根据控件名称获取句柄和控件属性。使用C++Builder 6如何根据控件名称获取句柄。并且根据获取到的句柄,获

如何根据控件名称获取句柄和控件属性。
使用C++Builder 6如何根据控件名称获取句柄。并且根据获取到的句柄,获取控件的TEXT,CAPTION,DATETIME等属性,把获取出的内容添加到一个MEMO里面
[解决办法]

引用:
是的,我就是想获取另一个进程控件的属性,但是不能通过句柄,因为每次启动程序句柄都会变

为什么不能通过句柄?
既然你已经知道了控件的名称什么的
那就用findwindow 那些去抓句柄 然后给上面的控件填值

[解决办法]
函数原型:
  HWND FindWindow   (   LPCSTR lpClassName,   LPCSTR lpWindowName   );
编辑本段参数表:
  lpClassName   指向一个以null结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。   如果该参数为null时,将会寻找任何与lpWindowName参数匹配的窗口。   lpWindowName   指向一个以null结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。
编辑本段返回值:
  如果函数执行成功,则返回值是拥有指定窗口类名或窗口名的窗口的句柄。   如果函数执行失败,则返回值为 NULL 。可以通过调用GetLastError函数获得更加详细的错误信息。
编辑本段如何在C#中使用
  导入库:user32.lib   头文件:winuser.h   ***.Net 中运用   命名空间 using System.Runtime.InteropServices;   导入库 [DllImport("user32.dll")]   函数原型 public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);   参数说明 lpClassName String,指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类   lpWindowName String,指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收 任何窗口标题   返回值 :句柄
编辑本段如何在C++中使用
  头文件:afxwin.h   例子:   // activate an application with a window with a specific class name   BOOL CMyApp::FirstInstance()   {   CWnd *pWndPrev, *pWndChild;   // Determine if a window with the class name exists...   pWndPrev = CWnd::FindWindow(_T("MyNewClass"), NULL);   if(NULL != pWndPrev)   {   // If so, does it have any popups?   pWndChild = pWndPrev->GetLastActivePopup();   // If iconic, restore the main window   if(pWndPrev->IsIconic())   pWndPrev->ShowWindow(SW_RESTORE);   // Bring the main window or its popup to the foreground   pWndChild->SetForegroundWindow();   // and you are done activating the other application   returnFALSE;   }   returnTRUE;   }
[解决办法]
要用
EnumChildWindows
BOOL EnumChildWindows(          HWND hWndParent,
    WNDENUMPROC lpEnumFunc,
    LPARAM lParam
);

[解决办法]
呵呵呵呵,呵呵呵呵。

楼主是通过什么手段知道另外进程中的控件的名称的?

热点排行