[英]Tooltip attached to mouse in C#
如何使用C#獲取附加到鼠標光標的工具提示? 我正在嘗試實現如下效果,一個顯示Ctrl / Shift / Alt鍵狀態的小工具提示。
我目前正在使用Tooltip
但它拒絕顯示,除非它有大約2行文本。
tt = new ToolTip();
tt.AutomaticDelay = 0;
tt.ShowAlways = true;
tt.SetToolTip(this, " ");
在鼠標移動中:
tt.ToolTipTitle = ".....";
所以我認為你無法用托管代碼完全做到這一點。 你必須要原生。
我看到它的方式有兩種選擇。
P /調用SendMessage函數。 將hwnd
設置為目標窗口,並為lParam傳遞TTM_ADDTOOL
消息和TOOLINFO結構。 當您想要在未創建的外部窗口(不在您的應用程序中)的工具提示時,這非常有用。 你可以通過調用FindWindow獲得它的hwnd。
顯然,你可以使用TOOLTIPS_CLASS
的CreateWindowEx()
函數作為類名,它將為你生成一個工具提示。 像這樣的東西:
HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hwndParent, NULL, hinstMyDll, NULL); SetWindowPos(hwndTip, HWND_TOPMOST,0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
請參閱此處的整篇文章: http : //msdn.microsoft.com/en-us/library/windows/desktop/bb760250(v = vs。85).aspx
為了讓您加快速度,您將在.NET代碼中定義類似的內容。 我從這里得到了定義。
您將在我的答案中找到我在同一網站(或其他類似網站)中提到的所有結構。一旦您在代碼中定義了所有這些結構,您就可以輕松轉置/移植我答案中的C樣本。相關文章:
class NativeFunctions
{
[DllImport("user32.dll", SetLastError=true)]
static extern IntPtr CreateWindowEx(
WindowStylesEx dwExStyle,
string lpClassName,
string lpWindowName,
WindowStyles dwStyle,
int x,
int y,
int nWidth,
int nHeight,
IntPtr hWndParent,
IntPtr hMenu,
IntPtr hInstance,
IntPtr lpParam);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.