gpt4 book ai didi

c# - ComboBox_SetCurSel 位于哪个 DLL 中?

转载 作者:太空宇宙 更新时间:2023-11-03 20:22:27 25 4
gpt4 key购买 nike

我想在我的 C# 应用程序中使用 WinApi 函数 ComboBox_SetCurSel

为此,我插入以下声明:

[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr ComboBox_SetCurSel(IntPtr hWnd, int index);

当我运行程序时,出现错误

EntryPointNotFoundException ComboBox_SetCurSel user32.dll
Message=Can't find entry point "ComboBox_SetCurSel" in DLL "user32.dll".

我想这个错误是由于 ComboBox_SetCurSel 不在 user32.dll 中,而是在其他一些 DLL 中引起的。

如果这是正确的,要修复此错误,我需要更改 DllImport 声明。

问题:ComboBox_SetCurSel位于哪个DLL中?

最佳答案

这实际上不是一个函数。这是一个宏,来自 WindowsX.h:

#define ComboBox_SetCurSel(hwndCtl, index)          ((int)(DWORD)SNDMSG((hwndCtl), CB_SETCURSEL, (WPARAM)(int)(index), 0L))

其中 SNDMSG 是 SendMessage。换句话说,你应该这样做:

[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, Int32 wParam, Int32 lParam);

SendMessage(hWnd, 0x14E, (Int32)index, 0);

关于c# - ComboBox_SetCurSel 位于哪个 DLL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com