怎样获取当前窗口句柄?

怎样获取当前窗口句柄?... 怎样获取当前窗口句柄? 展开
 我来答
dawncoasting
2008-11-10
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
[DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

/// <summary>
/// 获取有名字窗体句柄
/// </summary>
/// <param name="caption">窗体名</param>
/// <param name="delay">循环查询次数</param>
/// <param name="maxTries">停顿时间</param>
/// <returns>句柄 IntPtr</returns>
static IntPtr FindMainWindowHandle(String caption,int delay,int maxTries)
{
IntPtr mwh = IntPtr.Zero;
bool foundWindow = false;
int attempts = 0;

do
{
mwh = FindWindow(null, caption);
if (mwh == IntPtr.Zero)
{
Console.WriteLine("Form not yet found\n");
Thread.Sleep(maxTries);
++attempts;
}
else
{
Console.WriteLine("Form has been found");
foundWindow = true;
}
}
while(!foundWindow && attempts<delay);

if(mwh != IntPtr.Zero)
return mwh;
else
throw new Exception("Coule not find Main Window");

//调用FindMainWindowHandle()方法以获取窗体句柄,例:
IntPtr wHandle= FindMainWindowHandle("窗体名",10,100);
Console.WriteLine("窗体句柄: " + wHandle);
测绘地理信息
推荐于2016-01-18 · TA获得超过2204个赞
知道小有建树答主
回答量:516
采纳率:100%
帮助的人:474万
展开全部
每一个从Cwnd类派生出来的类都有一个成员变量m_hWnd,即指向当前窗口的句柄,直接使用它即可。
其中从CWnd类派生出来的类有CFrameWnd、CDialog、CView、CControlBar等等。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4f1ef7f
2008-11-08 · TA获得超过171个赞
知道小有建树答主
回答量:581
采纳率:0%
帮助的人:0
展开全部
HWND hWnd;
hWnd = ::FindWindow("窗口类名如:Dialog" , "要得到窗口的标题");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangbinwh
2008-11-08 · TA获得超过639个赞
知道大有可为答主
回答量:1367
采纳率:100%
帮助的人:526万
展开全部
GetSafeHwnd();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式