- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用以下代码:
const int GWL_STYLE = (-16);
const UInt32 WS_POPUP = 0x80000000;
const UInt32 WS_CHILD = 0x40000000;
[DllImport("user32.dll", SetLastError = true)]
static extern UInt32 GetWindowLong(IntPtr hWnd, int nIndex);
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, UInt32 dwNewLong);
在某处...
SetWindowLong(this.Handle, GWL_STYLE,
((GetWindowLong(this.Handle, GWL_STYLE) & ~(WS_POPUP)) | WS_CHILD));
这能否在 32 位和 64 位机器上正常运行?
如果不是,如果我编译我的应用程序以作为 x86 进程运行,它在 64 位机器上是否仍能正常工作?
我如何重写以下代码才能在 32 位和 64 位机器上都正常?
最佳答案
我猜您想知道您是否正确选择了 UInt32 类型。答案是肯定的。文档明确表示它始终是 32 位值:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633591(v=vs.85).aspx
您的代码是正确的。
关于c# - SetWindowLong/GetWindowLong 和 32 位/64 位 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282284/
我想使用原始 winapi32 来检查按钮样式,无论它是复选框按钮还是按钮。 bool isPushBtn(HWND hBtn, DWORD dwStyle) { return (0!=dwSt
以前,当我想创建一个点击表单时,我是 tempted to use platform invokes to set the extended window styles (user32.dll 中的G
我是这样使用 GetWindowLong 的: [DllImport("user32.dll")] private static extern IntPtr GetWindowLong(IntPtr
我正在为 Windows API 编写一些包装函数和类。我开始遇到的一个常见事件是修改 Windows 样式。 以下是一些示例代码,我根据参数 ALIGNMENT 枚举调整文本框的文本对齐方式。经过多
最近对 Windows 10 进行的创意者更新破坏了我使用 Win32 API GetWindowLong() 的应用程序代码。 在 Windows 10 Creator Update 之前,即使进程
我今天发现GetWindowLong (和 GetWindowLongPtr )具有“ANSI”(A)和“Unicode”(W)风格,即使它们没有 TSTR论据。 MSDN page on GetWi
我使用 GetWindowLong 窗口 api 在 C# 中获取窗口的当前窗口状态。 [DllImport("user32.dll")] static extern int GetW
我正在使用以下代码: const int GWL_STYLE = (-16); const UInt32 WS_POPUP = 0x80000000; const UInt32 WS_CHILD =
你好, 我一直在使用 JNA 与 Windows API 进行交互,现在我在创建窗口时卡住了。据我所做的如下:1. 已创建现有窗口的子窗口并获得有效的处理程序。2. 了解 Windows 中的每个窗口
我是一名优秀的程序员,十分优秀!