广告Logo
目录 综合报道 软件世界 硬件周刊 大众网络 OA专刊 游戏广场 评测与市场
当前位置:电脑报电子版 > 1999 年 > 23 期 > 软件世界 > C++编程俱乐部

《 C++编程俱乐部 》

  大家好!C++编程俱乐部自第一期推出以来,受到广大C++爱好者的热烈拥护。我们的邮箱每天都被塞得满满的,并且邮件列表的订阅数量倍增。在这里,玉海园的张龙、Mory、邵自成和杨晓东非常感谢朋友们的关心和支持,玉海园网站将继续真诚地为每一位朋友服务,丰富邮件列表的内容,认真对待每位朋友的来信,做到有问必答。对于老朋友,我们将继续真诚对待;对于新朋友,我们将热忱欢迎。无论在工作还是学习中,当你在遇到困难时请想到玉海园(http://yuhail.cj.net.cn),因为我们永远是你真诚的朋友。
  需要订阅邮件列表以及要解答各种相关问题的朋友可以访问http://yuhail.cj.net.cn/other/mail.htm 或发邮件到MFC2000@990.net 、MFC2000@126.com (如订阅邮件列表请注明“订阅”字样)。
  问题1:我将一个16x16的图标用在CListCtrl中时,发现它需要一个HICON句柄,请问我怎样才能从图标的ID中获取句柄?
  答: 用以下的方法可以取得图标的句柄
   HICON hIcon = NULL;
   hIcon = LoadIcon(IDI_YOURICONID);
  问题2:我已经调用了SetModifiedFlag()方法,但为什么在用户关闭文档窗口时仍然没有方法得知,如果我等到OnCloseDocument()时已经晚了,虽然我设置了标志,但它在改变时依然没有任何提示,请问这是为什么?
  答:1)时刻检查用户的状态,只要用户有所变动就马上调用SetModifiedFlag()函数,并且多次调用完全没有性能上的问题。不要等到开始关闭时才调用SetModifiedFlag()。
  2)当用户文档进行了改动时,在视类中调用“GetDocument()->SetModifiedFlag(TRUE)”。例如,如果在视中有一个CEdit控件,加入一个对消息ON_EN_CHANGE的自定义函数(假设为OnEditChange()),在这个函数里你就可以调用SetModifiedFlag()。 现在无论用户什么时候关闭计算机都可以询问是否保存。
  问题3:打印程序中如何定义一页纸的区域,即无论如何画线,都不超出此区域?
  答:在OnDraw中获得打印页面的范围,然后在该范围中画线。
  void CView::OnDraw(CDC* pDC)
  { if(pDC->IsPrinting()!=0)
  { int cxPage = pDC->GetDeviceCaps(HORZRES);//获取打印页面范围
  int cyPage = pDC->GetDeviceCaps(VERTRES);//get printer pixels per inch
  int cxInch = pDC->GetDeviceCaps(LOGPIXELSX);
  int cyInch = pDC->GetDeviceCaps(LOGPIXELSY);
  ...}}
  问题4:在VC6(非MFC)中,我想实现将Ctrl+Alt+Del、Ctrl+Esc、Alt+Tab等功能组合键锁住,请问怎样使用Windows API函数实现?
  答:在VC6如果需要将功能组合键锁住,只需调用API函数SystemParametersInfo即可,使用如下:SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, NULL, 0)。
  问题5:我通过产生的一组随机数,在视中显示波形图。我采用了CRECT计算出视的失效区,并采用UPDATEWINDOW函数刷新视。程序进入死循环(呈现的波形正常),但我设置的SETTIMER(1,256,NULL)却没有起作用,请问这是为什么?
  答:你可能在编写程序强制执行死循环,并且在死循环里没有加入消息处理机制,SetTimer发的WM_TIMER消息不能执行。因为在执行死循环时系统处于等待状态,解决这个问题的方法是:在循环中加入下面的语句
  if (PeekMessage()) { TranslateMessage(); DispatchMessage() };
  问题6:请问如何实现在移动窗口时,显示的是窗口而非虚框?
  答:在Windows系统中,需要在移动窗口时显示窗口或虚框,可以调用Windows API函数来实现:
  SystemParametersInfo(SPI_GETDRAGFULLWINDOWS, TRUE, NULL, 0)。
(玉涨园工作室(http://yuhail.cj.net.cn))
下载本期推荐软件页 首

《电脑报》版权所有,电脑报网站编辑部设计制作发布