乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 50|回复: 2

objectarx 2013 WM_ACAD_KEEPFOCUS无效

[复制链接]

56

主题

309

帖子

15

银币

中流砥柱

Rank: 25

铜币
530
发表于 2014-9-12 16:04:00 | 显示全部楼层 |阅读模式
vs2010,其它的消息映射可以正确映射,调试的时候也能正确中断在函数开头。
这里Myedit.cpp文件
// MyCEdit
IMPLEMENT_DYNAMIC(MyCEdit, CEdit)
MyCEdit::MyCEdit()
{
}
MyCEdit::~MyCEdit()
{
}
BEGIN_MESSAGE_MAP(MyCEdit, CEdit)
        ON_MESSAGE(WM_ACAD_KEEPFOCUS, onAcadKeepFocus)
        ON_CONTROL_REFLECT(EN_CHANGE, OnEnChange)
END_MESSAGE_MAP()
void MyCEdit::OnEnChange()
{
        CString str;
        int len;
        GetWindowText(str);
        //len=str.GetLength();
        //len=GetStringLength(str);
        //this->SetWindowPos(NULL,0,0,13*len,20,SWP_NOMOVE);//这句
        CDC* pDC = this->GetDC();
    CSize size = pDC->GetTextExtent(str);
    this->ReleaseDC(pDC);
    CRect rc;
    this->GetWindowRect(&rc);
    ScreenToClient(&rc);
    //rc.right = rc.left + size.cx;
    this->SetWindowPos(NULL,0,0,size.cx+50,20,SWP_NOMOVE);//这句
}
这里MyEdit.h文件
#include "StdAfx.h"
// MyCEdit
class MyCEdit : public CEdit
{
        DECLARE_DYNAMIC(MyCEdit)
public:
        MyCEdit();
        virtual ~MyCEdit();
        LRESULT onAcadKeepFocus(WPARAM wPara,LPARAM lPara)        //(UINT, LONG)
        {
                return TRUE;//在这里按F9设置断点,不能正确中断
        }
        
        int GetStringLength(CString& strTest)
        {
                int iLength = 0;
                for( int i = 0; i  255 )
                        {// 汉字
                                iLength += 2;
                        }
                        else
                        {// 非汉字
                                iLength += 1;
                        }
                }
                return iLength;
        }
protected:
        DECLARE_MESSAGE_MAP()
public:
        afx_msg void OnEnChange();
};
有人说WM_ACAD_KEEPFOCUS应该定义为0x1001,但系统是这样定义的:
#define WM_ACAD_KEEPFOCUS (0x0400+0x6D01)
即0x7101才对
回复

使用道具 举报

56

主题

309

帖子

15

银币

中流砥柱

Rank: 25

铜币
530
发表于 2014-9-12 16:08:00 | 显示全部楼层
同样的代码在cad2008里可以正常用
回复

使用道具 举报

13

主题

40

帖子

9

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
92
发表于 2020-3-2 13:56:00 | 显示全部楼层

请问最后是怎么解决的?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 06:09 , Processed in 0.258937 second(s), 69 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表