WPF窗口如何获得一个句柄?
来源:互联网 发布:淘宝客服招聘 可在家 编辑:程序博客网 时间:2024/05/16 12:36
1) 在窗体事件内获得句柄
privatevoidWindow_Loaded(object sender,RoutedEventArgs e)
{
WindowInteropHelper wndHelper=newWindowInteropHelper(this);
IntPtr wpfHwnd=wndHelper.Handle;
}
2.修改窗体属性:窗体风格
privatevoidWindow_Loaded(object sender,RoutedEventArgs e)
{
WindowInteropHelper wndHelper=newWindowInteropHelper(this);
int exStyle=(int)GetWindowLong(wndHelper.Handle,(int)GetWindowLongFields.GWL_EXSTYLE);
exStyle |=(int)ExtendedWindowStyles.WS_EX_TOOLWINDOW;
SetWindowLong(wndHelper.Handle,(int)GetWindowLongFields.GWL_EXSTYLE,(IntPtr)exStyle);
}
函数定义:
#region Window styles
[Flags]
publicenumExtendedWindowStyles
{
// ...
WS_EX_TOOLWINDOW = 0x00000080,
// ...
}
publicenumGetWindowLongFields
{
// ...
GWL_EXSTYLE = (-20),
// ...
}
[DllImport("user32.dll")]
publicstaticexternIntPtrGetWindowLong(IntPtr hWnd,int nIndex);
publicstaticIntPtrSetWindowLong(IntPtr hWnd,int nIndex,IntPtr dwNewLong)
{
int error=0;
IntPtr result=IntPtr.Zero;
// Win32 SetWindowLong doesn't clear error on success
SetLastError(0);
if(IntPtr.Size==4)
{
// use SetWindowLong
Int32 tempResult=IntSetWindowLong(hWnd, nIndex,IntPtrToInt32(dwNewLong));
error = Marshal.GetLastWin32Error();
result = newIntPtr(tempResult);
}
else
{
// use SetWindowLongPtr
result = IntSetWindowLongPtr(hWnd, nIndex, dwNewLong);
error = Marshal.GetLastWin32Error();
}
if((result==IntPtr.Zero)&&(error!=0))
{
thrownewSystem.ComponentModel.Win32Exception(error);
}
return result;
}
[DllImport("user32.dll",EntryPoint="SetWindowLongPtr",SetLastError=true)]
privatestaticexternIntPtrIntSetWindowLongPtr(IntPtr hWnd,int nIndex,IntPtr dwNewLong);
[DllImport("user32.dll",EntryPoint="SetWindowLong",SetLastError=true)]
privatestaticexternInt32IntSetWindowLong(IntPtr hWnd,int nIndex,Int32 dwNewLong);
privatestaticintIntPtrToInt32(IntPtr intPtr)
{
returnunchecked((int)intPtr.ToInt64());
}
[DllImport("kernel32.dll",EntryPoint="SetLastError")]
publicstaticexternvoidSetLastError(int dwErrorCode);
#endregion
转载网址:http://stackoverflow.com/questions/357076/best-way-to-hide-a-window-from-the-alt-tab-program-switcher
- WPF窗口如何获得一个句柄?
- 如何安全获得一个窗口句柄指针
- 如何通过窗口句柄来获得一个程序窗口的大小
- WPF 窗口句柄handle
- WPF获取窗口句柄
- 如何获得窗口句柄(HWND )和改变窗口属性
- 如何获得窗口句柄(HWND )和改变窗口属性
- 窗口句柄的获得
- 窗口句柄的获得
- 窗口句柄的获得
- 窗口句柄的获得
- 窗口句柄的获得
- 获得窗口句柄方法
- 窗口句柄的获得
- vc获得窗口句柄
- 获得窗口句柄
- 获得窗口句柄
- vc获得窗口句柄
- 交通灯管理系统
- 使用jq实现瀑布流闭包-1
- 电脑桌面图标消失任务栏也消失的解决办法
- 集体编程智慧代码摘抄【第二章】
- IOS的网络通信的方法
- WPF窗口如何获得一个句柄?
- Java多线程(十二)之线程池深入分析(下)
- html中简单的script实例
- JVM调优总结
- 图的遍历--思想
- JNI快速入门
- delphi对复杂泛型排序学习笔记
- WCHAR char CString等常用类型互转
- UNICODE十六进制数组转成中英文