小编Bmy*_*est的帖子

每次显示前如何更新工具提示文本?

每次(即将)显示工具提示时,如何使工具提示文本自行更新?

我有一个CDialog派生的对话框,它CToolTipCtrl以通常的方式使用工具提示,它工作得很好:

  • CToolTipCtrlCDialog班级的成员变量。
  • 创建工具提示并添加到工具中 CDialog::OnInitDialog
  • 消息中继到CToolTipCtrlCDialog::PreTranslateMessage

我也知道如何使用CToolTipCtrl::UpdateTipText和更新代码不同位置的工具提示文本CToolTipCtrl::Update

但是,我想要但尚未完成的是: 我希望在显示相应的工具提示之前每次鼠标悬停在工具上时更新工具提示的文本,即显示的文本取决于工具提示时的情况- 显示文本。

到目前为止我的工作代码(截断到相关行):

class CmyDialog : public CDialog
{
  virtual BOOL OnInitDialog();
  virtual BOOL PreTranslateMessage(MSG* pMsg);
  virtual void RefreshToolTipText();        // Want to call this prior each display

  CToolTipCtrl m_toolTip;
}

BOOL CmyDialog::OnInitDialog()
{
  CDialog::OnInitDialog();
  m_toolTip.Create(this);
  m_toolTip.AddTool( GetDlgItem(IDC_SOMECONTROLID), "Sometext" );
  m_toolTip.Activate( TRUE );
}

BOOL CmyDialog::PreTranslateMessage(MSG* pMsg)
{
  if(IsWindow(m_toolTip.m_hWnd)) 
     m_toolTip.RelayEvent(pMsg); 
}

void CmyDialog::RefreshToolTipText()
{
  m_toolTip.UpdateTipText( "updated runtime text",  GetDlgItem(IDC_SOMECONTROLID) …
Run Code Online (Sandbox Code Playgroud)

mfc dialog runtime tooltip

5
推荐指数
1
解决办法
5642
查看次数

MFC中多行静态文本的垂直居中

如何CStatic使用文本自动换行(多行)使结果垂直居中在控件的矩形中?

我试图解决的问题是:我在 aCStatic旁边有一个控件,CComboBox它根据选择更新信息文本。该文本可以短也可以长,要求CStatic有时使用多行,有时不使用。我希望信息文本与CComboBox.

现在问题来了:

  • 如果我将CStatic唯一的 1 个文本行设为高,则它对于 1 行文本看起来不错,但多行不适合并且不会显示。

  • 如果我使CStatic更高以适应 2 行,它看起来很适合长文本(2 行),但 1 行文本向上移动,因为CStatic对齐顶部的文本。一个CStatic在问题中提到的行为会解决这个...

如果我无法轻松获得垂直居中的CStatic多行控件,另一种方法是根据其中的文本量调整控件 rect 的大小。但在这种情况下,我有一个不同的问题:

如何以编程方式找出CStatic特定宽度的文本需要多少行?

mfc multiline vertical-alignment

5
推荐指数
1
解决办法
4305
查看次数

在不使用 CMake 的情况下将 ITK(Insight Toolkit)链接到 C++ VS2008 解决方案?

是否有一种简单、直接的方法可以在使用 CMake 的情况下将 ITK 库包含到我的项目(VS2008 解决方案)中?

背景

我这周才开始研究 ITK。到目前为止,我成功地编译了 ITK 和 VTK,并且也编译(和运行)了 WikiExamples。我的下一个目标是将任何 ITK 功能包含到我自己的项目中。除了在记录的安装过程中使用它之外,我对 CMake 没有任何经验。

我自己的项目代码库本身就是一个相当复杂的 SDK 环境,位于相当大、复杂的 VS2008 解决方案中,我只想向其中添加一些 ITK 功能。由于我已经构建了 ITK,我可以简单地将包含设置到 .h 文件并将 lib 目录添加到链接器吗?

有没有一种方法可以做到这一点,因为 .h 文件分布在整个 ITK 代码树上?

我意识到这个问题很相似,但给定的答案对我来说太神秘了,抱歉。

编辑:经过第二次和第三次阅读后,实际上并非如此。这导致了我在下面的回答。

c++ visual-studio-2008 itk

1
推荐指数
1
解决办法
1787
查看次数

memcmp - 有没有更快的方法来按位比较两个缓冲区

我想最快速有效地找出两个内存缓冲区(保存任意定义的值)在按位比较中是否相同。

我对任何东西都不感兴趣,除了布尔值“相同”之外,我希望该方法尽快返回,即在发现第一个差异时返回。

实现这一目标的最佳方法是什么?我当前首先比较整体尺寸 - 我知道 - 并使用 memcmp它们是否具有相同的尺寸

memcmp( buf1_ptr, buf2_ptr, sizeof(buf1) )
Run Code Online (Sandbox Code Playgroud)

这是我能做的最有效率的事情吗?我应该将比较分成 for 循环的垃圾吗?

c++ memory comparison performance

1
推荐指数
1
解决办法
2593
查看次数