看了MSDN,发现存在VK_A,VK_1,VK_PAGEUP等等虚拟码,但是为什么无效呢?还有关于SetWindowLong的问题!!!

Gutta 2005-07-06 12:09:51
编译的时候就报告说是“undefined identifier”,未定义变量,这是怎么回事?

请教了。

还有:

我发现使用SetWindowLong()函数来修改窗体的风格,书上说调用完以后还要用ShowWindow来使新风格生效。

为什么执行的时候出错呢??
是一个(系统的)ASSERT出错。

在视图类中:
::SetWindowLong(this->m_hWnd,GWL_STYLE,....);
//具体风格有点忘记了,反正就是去掉可以修改窗体大小的这么一个风格
this->ShowWindow(SW_SHOW);

各位高手帮我看看!!!谢谢啦!
...全文
632 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gutta 2005-07-07
  • 打赏
  • 举报
回复
非常感谢xing_xing_xing,结贴!
快乐鹦鹉 2005-07-06
  • 打赏
  • 举报
回复
编译的时候就报告说是“undefined identifier”,未定义变量,这是怎么回事?
---VK_A等不是变量,而是表达一个虚拟键,你可以把它看成是一个字符,比如A这样的。它不是变量。

在视图类中:
::SetWindowLong(this->m_hWnd,GWL_STYLE,....);
//具体风格有点忘记了,反正就是去掉可以修改窗体大小的这么一个风格
this->ShowWindow(SW_SHOW);
---关键是,你在视图类的哪个函数中调用的这些语句呢?是OnInitUpdate?那可能是不行的。这个时候,view对象还没有创建完成呢。ShowWindow会出错。
xing_xing_xing 2005-07-06
  • 打赏
  • 举报
回复
::SetWindowLong(GetSafeHwnd(),GWL_STYLE,::GetWindowLong(GetSafeHwnd(),GWL_STYLE) | WS_THICKFRAME);
Gutta 2005-07-06
  • 打赏
  • 举报
回复
第一个问题解决了!

谢谢


其次,第二个问题,还是没有搞定。。。
xlzxlich 2005-07-06
  • 打赏
  • 举报
回复
/* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
所以:
// case VK_A:
// MessageBox("A");
改成:
case 'A':
MessageBox("A");
jun_01 2005-07-06
  • 打赏
  • 举报
回复
有vk_a这样的写法吗?
Gutta 2005-07-06
  • 打赏
  • 举报
回复
第一个问题:
void CMy6View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
switch(nChar)
{
case VK_HOME:
MessageBox("Good");
break;
case VK_END:
MessageBox("END");
break;
// case VK_A:
// MessageBox("A");

}

CView::OnKeyDown(nChar, nRepCnt, nFlags);
}

这样,按HOME或者END 都可以响应事件而弹出一个对话框,但是使用VK_A之类的按钮,为什么不行呢?

--------------


第二个问题:
我是在ON_COMMAND消息处理事件中调用的,来修改这个窗体的风格为不可变大或变小:
::SetWindowLong(this->m_hWnd,GWL_STYLE,....);
this->ShowWindow(SW_SHOW);

这样view对象总是创建完成了的吧?
------------------


各位英雄,请教~~!!

2,643

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧