MFC中Static text怎样判断控件中的字符串是否超出控件的宽度。100分求解。

MFC中Static text怎样判断控件中的字符串是否超出控件的宽度。100分求解。,第1张

越是这样的小问题越是难以解决。如果字符串是单一的中文字符,或者ascii字符还好点,如果混合的话,需要分别计算每个字符的宽度。可以用api获得字符的宽度。不愿意用的话自己粗略计算一下也可以。

以静态文本控件m_txt为例(其他控件要考虑边缘空白)用静态文本控件正好容纳1000个中文字符的情况下来计算中文字符所占宽度,其他字符类似。

然后在程序中就可以通过计算字符串整体宽度与控将窗口宽度(m_txt->GetClientRect或 m->txtGetWidnowRect)相比较来判断了

字符串可以通过getwindowtext来获得

指定一个id,然后在对话框中调用GetDlgItem (id)->GetWindowRect

以上仅供参考,希望能帮助到你

如有其他问题,可以继续追问

答题不易,相互帮助,相互理解

void

C题目Dlg::OnBnClickedButton1()

{

int

i,le;TCHAR

input[100],string[100];

i=0;

m_2GetWindowText(input,100);

le=m_2GetWindowTextLength();

while(i

{

string[i]=input[i+10];i++;

}

m_4SetWindowText(string);

}

呵呵!!

你的我研究了下,

这里的m_2是编辑框的控件类型变量

m_4是静态的控件类型

变量

mfc 窗口大小变化时让窗口内部控件也一起随比例改变位置:

void CXTest2Dlg::OnSize(UINT nType, int cx, int cy)

{

CDialog::OnSize(nType, cx, cy);

// TODO: 在此处添加消息处理程序代码

//将窗口移动到合适位置和大小

CRect rc,rc0,rc1;

GetClientRect(&rc0);//先取得整个对话框的大小及位置

//设置Tab控件位置

rc1top=rc0top;

rc1left=rc0left+1;

rc1bottom=rc0bottom-30;

rc1right=rc0right-1;

if(GetDlgItem(IDC_TAB1)!=NULL)

{

GetDlgItem(IDC_TAB1)->MoveWindow(&rc1);

}

//设置时钟位置

rc1top=rc0bottom-20;

rc1left=rc0left+5;

rc1bottom=rc0bottom;

rc1right=rc0left+160;

if(GetDlgItem(IDC_CLOCKTEST)!=NULL)

{

GetDlgItem(IDC_CLOCKTEST)->MoveWindow(&rc1);

}

//设置关闭按钮位置

rc1top=rc1top-5;

rc1left=rc0right-200;

rc1bottom=rc1bottom;

rc1right=rc0right-120;

if(GetDlgItem(IDOK)!=NULL)

{

GetDlgItem(IDOK)->MoveWindow(&rc1);

}

//设置取消按钮位置

rc1left=rc0right-100;

rc1right=rc0right-20;

if(GetDlgItem(IDCANCEL)!=NULL)

{

GetDlgItem(IDCANCEL)->MoveWindow(&rc1);

}

//将三个对话框资源定位到Tab控件中

if(GetDlgItem(IDC_TAB1)!=NULL)

{

GetDlgItem(IDC_TAB1)->GetClientRect(&rc);

rc1top=rctop+20;

rc1left=rcleft+1;

rc1bottom=rcbottom-10;

rc1right=rcright-1;

tab1GetClientRect(&rc1);

tab1GetDlgItem(IDC_MSGINFO)->MoveWindow(&rc1);//移动第一个

rc1bottom=rcbottom-35;//第二个及第三个底部留出按钮位置

tab2GetDlgItem(IDC_BNSLIST)->MoveWindow(&rc1);

tab3GetDlgItem(IDC_MSGERRINFO)->MoveWindow(&rc1);

它是1978年由 Niklaus Wirth 在 ETH 创立的通用过程式语言。它与 Pascal 类似,具有系统编程和多重编程功能。

也可以为EDIT控件"添加变量"时,设置类别为:cstring的m_edit首先updatedata(TRUE)得到已显示的内容到m_edit,然后m_edit+=“追加的显示内容”最后updatedata(FALSE)即可。

直接用:

BITMAP bmp;

bmpIamgeGetBitmap(&bmp);

int nWidth = bmpbmWidth;

int nHeight = bmpbmHeight;

以上就是关于MFC中Static text怎样判断控件中的字符串是否超出控件的宽度。100分求解。全部的内容,包括:MFC中Static text怎样判断控件中的字符串是否超出控件的宽度。100分求解。、mfc里怎么获取web控件打开的网站大小、MFC中获取编辑框字符串长度问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9612225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存