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)、 

解决方案 »

  1.   


    黑名单:
    1. aoosang(智慧的鱼)
    2. aooang000 () 
    怀疑名单:1. tao_ao() 
      

  2.   

    http://expert.csdn.net/Expert/topic/1837/1837362.xml?temp=5.877322E-02
      

  3.   

    主  题:  伤心捧出自己 
    作  者:  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)、  
      

  4.   

    http://expert.csdn.net/Expert/topic/1837/1837377.xml?temp=2.746218E-02
      

  5.   

    VC版的斑竹,为什么不杀杀这种歪风邪气?
    我觉得VC版的风气比人家SQL Server版的差远了,一是提问的少,再是高手回答问题少,好多问题的回答是UP、GZ之类。
      

  6.   

    ///////////////////////////////////////////////////////////////////////////////
    Skt32信誉分变化记录
     
    删除帖子 2003-5-27  9:58:08 
    删除贴子,扣除信誉分5分。作者:Skt32贴文时间:May  26  2003    9:56PM标题:升第二星  散分内容:实现了这个月内升两颗星,  
    但是要升三星就必须前十名,大约要十万分。  
    呵呵,休息休息论坛:5001  
    ///////////////////////////////////////////////////////////////////////////////
    不知道是谁删的,为什么删?问题终于有些眉目了:上梁不正下梁歪!
      

  7.   

    主  题:  升第二星 散分 
    作  者:  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 
     
     
      这个月内升了两颗星?
    佩服!
      
     
      

  8.   


    主  题:  怎样换掉应用程序的图标?在线焦急等待……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是个不可理喻的家伙!
      

  9.   

    不明显啊
    freecard的得分看上去没有异常
      

  10.   

    zhangyongzhu (zhangyong)  1. 时间
      zhangyongzhu 贴出后,freecard几乎可以说立刻就回了
      而且答案比较全  之后zhangyongzhu 不再有任何讨论和交互,1个多小时后就结了,这是神速了
      而且和那句“在线焦急等待”也太贴了吧,呵呵2. 人物
      zhangyongzhu 一点印象都没有,若是新手,结贴怎么这么熟手?
      如果是熟手,怎么要问这么简单的问题?
      这个人以后也许不再出现了3. 内容
      非常简单的问题,现在可用分机制改了,100分太大方了吧当然是个人的看法,老大你怎么看?
      

  11.   

    1:也许他以前准备/保存过这个问题的答案。我有印象,这个问题以前有人问过。
    2:zhangyongzhu也许比较喜欢上论坛(不一定是csdn),知道怎么揭帖
    3:没办法限制他
    要定一个人作弊,还得是比较明显的,没有争议的证据,冤枉人可不好。就算是有人漏网,情节不重,影响不恶劣,也就不深究了,我只能做到这样了。