1. 17:21 May 17http://expert.csdn.net/Expert/topic/1768/1768862.xml?temp=.4197351主 题: 如何实现象windows画图板中左侧的工具栏,所有的工具成4-5列,
作 者: aooang000 ()
等 级:
信 誉 值: 100
所属论坛: VC/MFC 界面
问题点数: 100
回复次数: 6
发表时间: 2003-5-11 17:00:49
如题,,想做成象windows画图板中的样子,在左侧显示工具栏,所有的工具都在上面列出,如何解决,有源码更好,,,
回复人: cxjlw(老为) ( ) 信誉:100 2003-5-11 18:23:52 得分:10
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP /*这个参数!!!!!!*/
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}下面的是解释:
CBRS_TOP Control bar is at the top of the frame window.
CBRS_BOTTOM Control bar is at the bottom of the frame window.
CBRS_NOALIGN Control bar is not repositioned when the parent is resized.
CBRS_LEFT Control bar is at the left of the frame window.
CBRS_RIGHT Control bar is at the right of the frame window.换成 CBRS_LEFT 不就可以了!
Top
回复人: Skt32(Skt32) ( ) 信誉:100 2003-5-11 19:17:54 得分:20
1.// palette.h : interface of the CPaletteBar class
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.class CPaletteBar : public CToolBar
{
// Constructor
public:
CPaletteBar();
void SetColumns(UINT nColumns);
UINT GetColumns() { return m_nColumns; };// Attributes
public:// Operations
public:// Implementation
public:
virtual ~CPaletteBar();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endifprotected:
UINT m_nColumns;// Generated message map functions
protected:
//{{AFX_MSG(CPaletteBar)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};/////////////////////////////////////////////////////////////////////////////
// palette.cpp : implementation of the Floating tool palette class
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.#include "stdafx.h"
#include "ctrlbars.h"#include "palette.h"#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// CPaletteBarBEGIN_MESSAGE_MAP(CPaletteBar, CToolBar)
//{{AFX_MSG_MAP(CPaletteBar)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CPaletteBar construction/destructionCPaletteBar::CPaletteBar()
{
m_nColumns = 2;
m_cxLeftBorder = 5;
m_cyTopBorder = 5;
m_cxRightBorder = 5;
m_cyBottomBorder = 5;
}CPaletteBar::~CPaletteBar()
{
}/////////////////////////////////////////////////////////////////////////////
// CPaletteBar diagnostics#ifdef _DEBUG
void CPaletteBar::AssertValid() const
{
CToolBar::AssertValid();
}void CPaletteBar::Dump(CDumpContext& dc) const
{
CToolBar::Dump(dc);
}#endif //_DEBUG/////////////////////////////////////////////////////////////////////////////
// CPaletteBar message handlersvoid CPaletteBar::SetColumns(UINT nColumns)
{
m_nColumns = nColumns;
int nCount = GetToolBarCtrl().GetButtonCount(); for (int i = 0; i < nCount; i++)
{
UINT nStyle = GetButtonStyle(i);
BOOL bWrap = (((i + 1) % nColumns) == 0);
if (bWrap)
nStyle |= TBBS_WRAPPED;
else
nStyle &= ~TBBS_WRAPPED;
SetButtonStyle(i, nStyle);
} Invalidate();
GetParentFrame()->RecalcLayout();
}2.
BOOL CMainFrame::CreatePaletteBar()
{
if (!m_wndPaletteBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_FIXED |
CBRS_TOP | CBRS_TOOLTIPS, ID_PALETTEBAR) ||
!m_wndPaletteBar.LoadBitmap(IDB_PALETTE) ||
!m_wndPaletteBar.SetButtons(palette,
sizeof(palette)/sizeof(UINT)))
{
TRACE0("Failed to create toolbar\n");
return FALSE; // fail to create
} m_wndPaletteBar.SetWindowText(_T("Palette"));
m_wndPaletteBar.EnableDocking(0); // Create the Palette. We are using hardcoded numbers for ease here
// normally the location would be read in from an ini file.
CPoint pt(GetSystemMetrics(SM_CXSCREEN) - 100,
GetSystemMetrics(SM_CYSCREEN) / 3); m_wndPaletteBar.SetColumns(3);
FloatControlBar(&m_wndPaletteBar, pt); return TRUE;
}int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1; EnableDocking(CBRS_ALIGN_ANY); ...
if (!CreatePaletteBar())
return -1;
...
return 0;
}
msdn->samples->ctlbars
Top
回复人: tao_ao() ( ) 信誉:100 2003-5-15 9:27:03 得分:20
完全同意 Skt32(Skt32)
Top
回复人: BinaryPoet(二进制诗人) ( ) 信誉:100 2003-5-15 14:34:14 得分:10
调用工具条空件的SetButtonStyle函数。
TBBS_WRAPPED这个参数很关键,它决定了工具栏是否换行。
Top
回复人: etboy327(etboy) ( ) 信誉:100 2003-5-15 15:09:07 得分:0
我觉得也可以用CDialogBar,呵呵,仅供参考。
Top
回复人: aoosang(智慧的鱼) ( ) 信誉:100 2003-5-17 13:59:52 得分:40
Skt32(Skt32) 调用工具条空件的SetButtonStyle函数。
TBBS_WRAPPED这个参数很关键,它决定了工具栏是否换行。
Top
该问题已经结贴 ,得分记录: cxjlw (10)、 Skt32 (20)、 tao_ao (20)、 BinaryPoet (10)、 aoosang (40)、
解决方案 »
- 关于TrackPopupMenuEx()
- 按钮按下,edit一直显示数字
- 求微软出版的 MFC程序设计第二版,中文版 ,要求是 CHM帮助格式 或 word格式的,只要适合打印就行
- 请问各位大虾啊!
- 关于自绘菜单的问题?
- 怎么把一个CString 转化为 char *
- 问个决定前途的问题!
- 来就送
- 请问,在ATL中调用一个存储过程,存储过程正确return(0),错误执行将raiserror 510001 @ErrMsg;那我在ATL中如何判断返回的是什么值?谢谢
- 请问如何在VC中引用一个COM,比如说DAO3.6?
- 请问如何实现点击MDI菜单弹出一个不同于childfrm样式的一般子窗口?
- 两个类相互有对方的类成员变量,如何引用?
黑名单:
1. aoosang(智慧的鱼)
2. aooang000 ()
怀疑名单:1. tao_ao()
作 者: xj811 (xj811)
等 级:
信 誉 值: 100
所属论坛: VC/MFC 非技术类
问题点数: 100
回复次数: 1
发表时间: 2003-5-26 21:26:34
臧天朔
回复人: great12(【冰棍】--骗吃骗喝骗感情) ( ) 信誉:100 2003-5-26 21:28:20 得分:100
Top
该问题已经结贴 ,得分记录: great12 (100)、
我觉得VC版的风气比人家SQL Server版的差远了,一是提问的少,再是高手回答问题少,好多问题的回答是UP、GZ之类。
Skt32信誉分变化记录
删除帖子 2003-5-27 9:58:08
删除贴子,扣除信誉分5分。作者:Skt32贴文时间:May 26 2003 9:56PM标题:升第二星 散分内容:实现了这个月内升两颗星,
但是要升三星就必须前十名,大约要十万分。
呵呵,休息休息论坛:5001
///////////////////////////////////////////////////////////////////////////////
不知道是谁删的,为什么删?问题终于有些眉目了:上梁不正下梁歪!
作 者: Skt32 (荒城之月)
等 级:
信 誉 值: 100
所属论坛: VC/MFC 基础类
问题点数: 200
回复次数: 25
发表时间: 2003-05-26 21:55:19
实现了这个月内升两颗星,
但是要升三星就必须前十名,大约要十万分。
呵呵,休息休息
回复人: lwugui(笑熬浆糊) ( ) 信誉:100 2003-05-26 22:00:00 得分:0
这个月内升了两颗星?
佩服!
Top
回复人: lwugui(笑熬浆糊) ( ) 信誉:100 2003-05-26 22:00:00 得分:0
这个月内升了两颗星?
佩服!
Top
回复人: HJHJ001(阿景) ( ) 信誉:100 2003-05-26 22:05:00 得分:0
我这个星期升了三个角,我已经很高兴了。没想到你更很,一个月升两颗星。分我点分吧,你那么多分,留着也没用。
Top
回复人: syl08341(沈阳老零) ( ) 信誉:95 2003-05-26 22:05:00 得分:0
up
Top
回复人: ydzqw(===七条狗===) ( ) 信誉:96 2003-05-26 22:19:00 得分:0
强
Top
回复人: pcxxx(祥子) ( ) 信誉:100 2003-05-26 22:21:00 得分:0
酷呀,up
Top
回复人: seacode(听海风) ( ) 信誉:100 2003-05-26 22:22:00 得分:0
我要分提问!
阿扑
Top
回复人: mingbao(★情已逝★) ( ) 信誉:100 2003-05-26 22:27:00 得分:0
请问要多少分才能变成星?多少分才能升一个三角?
Top
回复人: common_man(谢安王导) ( ) 信誉:86 2003-05-26 22:27:00 得分:0
牛人啊!!佩服!!!接分
Top
回复人: ljc_zy(彷徨) ( ) 信誉:100 2003-05-26 22:28:00 得分:0
佩服!
Top
回复人: zhaoweidf(等待爱的小狮子) ( ) 信誉:100 2003-05-26 22:29:00 得分:0
接
Top
回复人: unicornstudio(unicorn) ( ) 信誉:100 2003-05-26 22:31:00 得分:0
佩服佩服,佩服之极!!!!!!!!!!!!!!
Top
回复人: habao(哈宝) ( ) 信誉:99 2003-05-26 22:32:00 得分:0
要了
Top
回复人: weibo79(数据矿工) ( ) 信誉:100 2003-05-26 22:34:00 得分:0
我的努力目标啊
Top
回复人: butianshi(天石) ( ) 信誉:100 2003-05-26 22:35:00 得分:0
up
Top
回复人: qqxucom() ( ) 信誉:100 2003-05-26 22:35:00 得分:0
我是来接分的
Top
回复人: allenhai1980(心蓝世界) ( ) 信誉:99 2003-05-26 22:35:00 得分:0
久仰楼主,
楼主的昵称换得很快:(
Top
回复人: fgwf1(坦荡男儿) ( ) 信誉:100 2003-05-26 22:44:00 得分:0
靠,我怎么就不行呢?
Top
回复人: mathsword(思考……) ( ) 信誉:100 2003-05-26 22:44:00 得分:0
强!
Top
回复人: renmin2000(懒虫) ( ) 信誉:100 2003-05-26 22:45:00 得分:0
恭喜
Top
回复人: fengzi_zhu(十万个为什么…) ( ) 信誉:100 2003-05-26 22:58:00 得分:0
唔~ 补领....
西西
恭喜恭喜
Top
回复人: sharpblade() ( ) 信誉:100 2003-05-26 23:04:00 得分:0
你爬好快噢
Top
回复人: rogerfz(晨曦) ( ) 信誉:96 2003-05-26 23:20:00 得分:0
久仰,久仰,
楼主,我也是来接分的
Top
回复人: zhang_zhibin(阿笨猫) ( ) 信誉:100 2003-05-26 23:24:00 得分:0
接分来了!:)
Top
回复人: shaolunyuan(袁绍伦) ( ) 信誉:95 2003-05-26 23:26:00 得分:0
这个月内升了两颗星?
佩服!
主 题: 怎样换掉应用程序的图标?在线焦急等待……100分
作 者: zhangyongzhu (zhangyong)
等 级:
信 誉 值: 100
所属论坛: VC/MFC 界面
问题点数: 100
回复次数: 7
发表时间: 2003-6-20 15:32:46
怎样换掉应用程序的图标?
回复人: free_card(痛并快乐着) ( ) 信誉:105 2003-6-20 15:34:52 得分:100
静态更改: 修改图标资源IDR_MAINFRAME。它有两个图标,一个是16*16的,另一个是32*32的,注意要一起修改。
动态更改: 向主窗口发送WM_SETICON消息.代码如下:
HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON);
ASSERT(hIcon);
AfxGetMainWnd()->SendMessage(WM_SETICON,TRUE,(LPARAM)hIcon); HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);//IDI_ICON1为资源中的图标ID号
SetIcon(hIcon,true);
SetIcon(hIcon,False);
Top
回复人: dz_w(快乐之星) ( ) 信誉:100 2003-6-20 15:40:00 得分:0
HICON hIcon = LoadIcon(YOUR_ICON_ID);
SetIcon(hIcon, FALSE)//小图标;
SetIcon(hIcon, TRUE)//大图标;
Top
回复人: jnxulei(石头) ( ) 信誉:100 2003-6-20 15:42:00 得分:0
也可以直接从程序的RES目录中修改相应的图表文件。
Top
回复人: eugen_Lij(0000) ( ) 信誉:95 2003-6-20 16:02:13 得分:0
如何让应用程序的图标支持24bit true color??
Top
回复人: suxk(逍遥小子) ( ) 信誉:100 2003-6-20 16:12:56 得分:0
修改IDR_MAINFRAME重新编译全部就行了
Top
回复人: grey_whp(我爱C++) ( ) 信誉:100 2003-6-20 16:20:39 得分:0
用vc以资源文件形式打开exe文件,就可以修改该程序的图标了
Top
回复人: Pipi0714(皮皮0714) ( ) 信誉:89 2003-6-20 16:27:02 得分:0
用vc可以用其它的网上的工具也可以
Top
该问题已经结贴 ,得分记录: free_card (100)、 http://expert.csdn.net/Expert/topic/1938/1938955.xml?temp=.5407373黑名单:
1。free_card(痛并快乐着) // 这个free_card是个不可理喻的家伙!
freecard的得分看上去没有异常
zhangyongzhu 贴出后,freecard几乎可以说立刻就回了
而且答案比较全 之后zhangyongzhu 不再有任何讨论和交互,1个多小时后就结了,这是神速了
而且和那句“在线焦急等待”也太贴了吧,呵呵2. 人物
zhangyongzhu 一点印象都没有,若是新手,结贴怎么这么熟手?
如果是熟手,怎么要问这么简单的问题?
这个人以后也许不再出现了3. 内容
非常简单的问题,现在可用分机制改了,100分太大方了吧当然是个人的看法,老大你怎么看?
2:zhangyongzhu也许比较喜欢上论坛(不一定是csdn),知道怎么揭帖
3:没办法限制他
要定一个人作弊,还得是比较明显的,没有争议的证据,冤枉人可不好。就算是有人漏网,情节不重,影响不恶劣,也就不深究了,我只能做到这样了。