兄弟们,我有一个窗体,因为其title很长,所以显示不完整,我想在鼠标移到蓝色的titlebar上面的时候,给个tip,提示一下title的内容,怎么实现?
谁能解决,立马给200分,一次不够,给两次。
谁能解决,立马给200分,一次不够,给两次。
解决方案 »
- 如何判断checkbox的值是否为空?
- 求一正则表达式:匹配:<>中的空格。
- 我是C#初学者,有好多问题不能自己解决。我希望能得到你们的帮助,我将感激不尽!
- 为什么我的Matlab里面没有MWArray.dll
- 打开文件时出现:在web窗体设计器中未能加载该文件,请更改下列错误,然后尝试重新加载
- C#中传值问题和LIST泛型的综合应用
- 我在 MS 的网站上看到的 REPORTING SERVICES 怎么是 DEMO 和 TRIAL 版的? 没有正式版下么?
- 将DataGrid与Sql数据库绑定后,怎样对DataGrid进行数据插入?
- 老大们,开发这样一个网站要多长时间啊?
- C# 关于datagrivView 问题
- 关于Datagrid控件
- ****无法创建抽象类或接口的实例怎么改?*****
titlebar上面没有做过,不过你可以在statusBar上面可以.或者在界面的其他地方显示可能好看点.
然后用标签代替标题栏
设上TIP属性
就可以实现了比较笨,呵呵
System.Windows.Forms.StatusBar
因为 我写的程序里没出现过这样的需求。给你点思路吧,我也没法现在给你写,如果看了下面的代码感觉
为了这个功能,实现的麻烦程度以及操出了你的心理承受能力 那....
有不明白的地方,QQ 65423574。 /// <summary>
/// 重写 WndProc
/// </summary>
/// <param name="m"></param>
protected override void WndProc(ref Message m)
{
const int WM_NCMOUSEHOVER=0x02A0;
const int WM_NCMOUSELEAVE=0x02A2;
//上面两个消息 必须在 WM_NCMOUSELEAVE 消息里
//Comctl32.dll 中的 _TrackMouseEvent API,触发。
const int WM_NCMOUSEMOVE=0x00A0;
// TODO: 添加 Form1.WndProc 实现
if (WM_NCMOUSELEAVE==m.Msg)
{
/* 这是VC 的源代码 ,下面的调用后就会有,WM_NCMOUSEHOVER,WM_NCMOUSELEAVE
* 消息
if (!m_bTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE|TME_HOVER;
tme.dwHoverTime = 1;
m_bTracking = _TrackMouseEvent(&tme);
}
*/
System.Diagnostics.Debug.WriteLine("WM_NCMOUSELEAVE");
}
else if(WM_NCMOUSELEAVE==m.Msg)
{
//这里调用 API 函数、调出 Tip
//时间太长了,你到网上 找 TOOLINFO 相关的资料吧
//找 API 的不要看 mfc 的就行,估计写出来 50 多行代码以内就可以搞定
//要用的 API,CreateWindowEx,SetWindowPos,SendMessage 最少要用这么几个
}
base.WndProc (ref m);
}