urenai 发表于 2024-1-10 21:21:54

【解决方案】让 工具条 支持设置 按钮 宽度。

本帖最后由 urenai 于 2024-1-10 23:19 编辑

封装就应该整整齐齐。
劳烦 @飞扬工作室 动动小手给复制到库里。
<火山程序 类型 = "通常" 版本 = 1 />

方法 置按钮宽度 <公开 类型 = 逻辑型 @禁止流程检查 = 真>
参数 按钮索引 <类型 = 整数 注释 = "从0开始" @默认值 = 0>
参数 按钮宽度 <类型 = 整数 @默认值 = 200>
参数 按钮ID <类型 = 整数 @默认值 = 0>
参数 图标索引 <类型 = 整数 注释 = "从0开始" @默认值 = -1>
{
    @ CVWnd_ToolBar* pWnd = (CVWnd_ToolBar*)GetMfcWndPtr ();
    @ if (pWnd->m_hWnd != NULL)
    @ {
    @ TBBUTTONINFO tbi;
    @ tbi.cbSize = sizeof(TBBUTTONINFO);
    @ tbi.dwMask = TBIF_SIZE | TBIF_BYINDEX;
    @ tbi.cx = @<按钮宽度>;
    @ tbi.idCommand = @<按钮ID>;
    @ tbi.iImage = @<图标索引>;
    @ return (BOOL) SendMessage((HWND)pWnd->m_hWnd,TB_SETBUTTONINFO, @<按钮索引>, (LPARAM)&tbi);
    @ }
}


<火山程序 类型 = "通常" 版本 = 1 />

方法 均分按钮宽度 <公开 类型 = 逻辑型 折叠 @禁止流程检查 = 真>
{
    @ CVWnd_ToolBar* pWnd = (CVWnd_ToolBar*)GetMfcWndPtrWithValidHWnd ();
    @ if (pWnd->m_hWnd != NULL)
    @ {
    @   RECT rt;
    @   pWnd->GetWindowRect (&rt);
    @   int ButtonCount = pWnd->GetButtonCount ();
    @   int everywide = (rt.right - rt.left) / ButtonCount;
    @   for (int _Index = 0; _Index < ButtonCount; _Index++)
    @      {
    @         TBBUTTONINFO tbi;
    @         tbi.cbSize = sizeof(TBBUTTONINFO);
    @         tbi.dwMask = TBIF_SIZE | TBIF_BYINDEX;
    @         tbi.cx = everywide;
    @         tbi.idCommand = _Index;
//@         tbi.iImage = _Index;//无效
    @         SendMessage((HWND)pWnd->m_hWnd,TB_SETBUTTONINFO, _Index, (LPARAM)&tbi);
    @         }
    @      return true;
    @ }
    @      return false;
}


小助手 发表于 2024-1-10 21:46:21

感谢支持火山!

itismine 发表于 2024-1-11 08:25:42

本帖最后由 itismine 于 2024-1-11 15:56 编辑

学习一下。
你也可以自己封装一下嘛。

1503123 发表于 2024-1-11 08:36:41

本帖最后由 1503123 于 2024-1-11 09:14 编辑

缩进很重要,设置工具条按钮也很重要.很次都需要字数去控制宽度.

1503123 发表于 2024-1-11 10:03:37


如果能在工具条按钮设置窗口,增加按钮宽度,就更完美了.

飞扬工作室 发表于 2024-1-11 15:16:39

1503123 发表于 2024-1-11 10:03
如果能在工具条按钮设置窗口,增加按钮宽度,就更完美了.
标题文本两端加空格

1503123 发表于 2024-1-11 16:19:12

飞扬工作室 发表于 2024-1-11 15:16
标题文本两端加空格


这是加空格的状态
页: [1]
查看完整版本: 【解决方案】让 工具条 支持设置 按钮 宽度。