VC++界面设计的问题
答案:6 悬赏:40 手机版
解决时间 2021-02-16 12:05
- 提问者网友:蓝莓格格巫
- 2021-02-15 13:06
VC++界面设计的问题
最佳答案
- 五星知识达人网友:行路难
- 2021-02-15 13:51
很简单
就从 CWnd继承就行。
首先是数据管理,看显示项,有图片有文字,然后有位置,和ID用来通知父窗口。可以定义个结构。
struct tagListItem
{
UINT nMyID;
CString strMyName;
HBITMAP hMyPicture;
CRect rcMyPos,这个不是指定的,wm_size时候重新布局生成的,方便绘制,和鼠标命中坚持。
}
用个链表来管理这些按钮项目。
然后重要的是窗口绘制部分。
wm_paint;
cdc* pdc= GetDC();
// 图片
cdc*memdc= createcom...
memdc.selectobjec(item.hMyPicture);
bitblt...
// 文字
drawtext
//
等待就能绘制管理部分的界面了。
事件控制,响应 wm_lbuttondown 就行了
1.管理/查询界面。类中用个标记判断当前是管理还是查询。鼠标点击查询就切换到查询,点击管理就切换到管理界面,wm_paint绘制的时候根据这个标记值来绘制相应内容。 (类中可以存“管理”“查询”按钮的rect就行了,在wm_lbuttondown事件函数里面判断鼠标位置)。
2.按钮点击,在wm_lbutdown里面枚举按钮链表,判断光标在那个按钮的 rcMyPos 里面就行了,简单点,直接使用sendmessage向父窗口发送消息:
sendmessage(wm_command, wparam, lparam)。发送别的消息也可以,随便定义一个就可以了,关键是要把这个按钮的ID给传过去,或者把按钮的数据信息都传过去。(如果是wm_command的话,比较通用,但是ID不要和菜单项工具条里面的冲突)
就从 CWnd继承就行。
首先是数据管理,看显示项,有图片有文字,然后有位置,和ID用来通知父窗口。可以定义个结构。
struct tagListItem
{
UINT nMyID;
CString strMyName;
HBITMAP hMyPicture;
CRect rcMyPos,这个不是指定的,wm_size时候重新布局生成的,方便绘制,和鼠标命中坚持。
}
用个链表来管理这些按钮项目。
然后重要的是窗口绘制部分。
wm_paint;
cdc* pdc= GetDC();
// 图片
cdc*memdc= createcom...
memdc.selectobjec(item.hMyPicture);
bitblt...
// 文字
drawtext
//
等待就能绘制管理部分的界面了。
事件控制,响应 wm_lbuttondown 就行了
1.管理/查询界面。类中用个标记判断当前是管理还是查询。鼠标点击查询就切换到查询,点击管理就切换到管理界面,wm_paint绘制的时候根据这个标记值来绘制相应内容。 (类中可以存“管理”“查询”按钮的rect就行了,在wm_lbuttondown事件函数里面判断鼠标位置)。
2.按钮点击,在wm_lbutdown里面枚举按钮链表,判断光标在那个按钮的 rcMyPos 里面就行了,简单点,直接使用sendmessage向父窗口发送消息:
sendmessage(wm_command, wparam, lparam)。发送别的消息也可以,随便定义一个就可以了,关键是要把这个按钮的ID给传过去,或者把按钮的数据信息都传过去。(如果是wm_command的话,比较通用,但是ID不要和菜单项工具条里面的冲突)
全部回答
- 1楼网友:旧脸谱
- 2021-02-15 18:40
创建列表控件
- 2楼网友:孤独入客枕
- 2021-02-15 17:41
左边是一个自定义控件,控件里面是由 另一个控件组成滴,这个控件是由一个Button和一个listctl组成滴
class pannel
{
private:
CArray< CMenuCtl > m_Menus;
}
class CMenuCtl
{
private:
CButton m_button;
CListCtl m_list;
}
CMenuCtl一层一层的画到pannel上去,通过层变换和顶层CMenuCtl 的Movewindow就可以实现动态效果。
楼主,明白?
class pannel
{
private:
CArray< CMenuCtl > m_Menus;
}
class CMenuCtl
{
private:
CButton m_button;
CListCtl m_list;
}
CMenuCtl一层一层的画到pannel上去,通过层变换和顶层CMenuCtl 的Movewindow就可以实现动态效果。
楼主,明白?
- 3楼网友:夜余生
- 2021-02-15 16:09
可以使用树状控件来编写CTreeList
- 4楼网友:山有枢
- 2021-02-15 14:38
横向的是自定义的快捷工具栏
纵向的有点像是ListCtrl的Icon(图标)格式
至于你说的显示不同的快捷图标,你可以用隐藏啊,
点"管理"的时候 显示一部分图标,隐藏一部分图标
(可用ShowWindow函数 的SW_HIDE 和SW_SHOW参数)
点"查询"同理
纵向的有点像是ListCtrl的Icon(图标)格式
至于你说的显示不同的快捷图标,你可以用隐藏啊,
点"管理"的时候 显示一部分图标,隐藏一部分图标
(可用ShowWindow函数 的SW_HIDE 和SW_SHOW参数)
点"查询"同理
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯