回 帖 发 新 帖 刷新版面

主题:本人可以解答VC++方面的问题,有问题请进来。。。

欢迎大家在这里提问。但如果没有及时回复,请见谅。。。
另:请将问题、现象表述清楚,否则恕无法解答。

声明:本人主要提供解决方案,具体作业和代码请自行处理,谢谢。


------2007年5月14日发:

对不起,大家,近来工作繁忙,对于大家的提问没有及时解答深感抱歉。呵呵。

另:本人长期承接VC++项目(至少2000RMB以上项目),有意发邮件(在个人资料里,邮件只接受外包项目),谢谢!

呵呵,祝大家工作学习顺利!

------2008年1月18日发:
呵呵~~~这帖子发了一周年了~~~很感谢大家的支持,点击率和回帖数都是这个版面几乎最高了,呵呵~~~~~不过本人一直都比较忙,没有回答大家的问题,请见谅~~呵呵~~~
欢迎大家继续支持~~~~

回复列表 (共581个回复)

41 楼

InitInstance:

发到你邮箱了。

修改之处在DrawBottomBar函数里面,你原来的代码没有用二次缓存,StretchBlt直接就帖到屏幕上。现在我加了一个内存DC,StretchBlt后先拷贝到内存DC,再贴到屏幕上。具体尺寸参数你还得自己配一下。若有同类问题类似处理。

42 楼

高人,我也给你发了,是画线问题!我也用了你说的办法,可是就是解决不了,麻烦你看看给点建议。代码很少!谢了

43 楼

不知道是不是安装的问题还是其他什么原因!!!
就这么简单的一个程序
它总说我有一个错误~!!
#include "iostream.h"
int main()
{
    char a;
    cout<<"输入字符:";
    cin>>a;
    cout<<"刚才输入的字符是"<<a<<endl;
    return 0;
}
我怎么看都没看到哪里有问题的~~!!

44 楼

xyjs2006大哥,我怎么也不能把hmemdcCopy 内容显示到边框上,是不是尺寸没匹配,想了一下也不知道怎么匹配才好,后来我把BitBlt改为StretchBlt也不行,下面是我画左右边框的函数:
BOOL  DrawFrameBar(HINSTANCE hInstance,HDC hDC,RECT rect)
{
  int nWidth = rect.right - rect.left;
  int nHeight = rect.bottom- rect.top;
  
  HDC hmemdc = CreateCompatibleDC(hDC);
  HDC hmemdcCopy = CreateCompatibleDC(hDC);
  SelectObject(hmemdc,hBmBordLeft);  //选入内存
 
  for(int i=0;i<nHeight;i=i+bmBordLeft.bmHeight)
  {
  StretchBlt(hmemdcCopy,0,i,bmBordLeft.bmWidth,bmBordLeft.bmHeight,hmemdc,0,0,bmBordLeft.bmWidth,bmBordLeft.bmHeight,SRCCOPY);     
  }

  BitBlt(hDC, rect.left, rect.top,nWidth,nHeight, hmemdcCopy, 0, 0, SRCCOPY);
  
  DeleteDC(hmemdcCopy);    
  DeleteDC(hmemdc);

  return TRUE;

}


还有,你能否讲讲二次缓冲的道理?好象跟我理解的双缓冲有区别。
StretchBlt从内存DC直接拷贝到屏幕跟先StretchBlt后先拷贝到内存DC,再从另一个内存DC拷贝到屏幕有何区别?这不是增加额外开销吗?毕竟都是从内存DC到屏幕。
对xyjs2006大哥的热心帮助再次感谢。

45 楼

InitInstance:

画线问题:
在OnMouseMove里面加入如下代码:
                     m_bDrawRed = TRUE;
        CRect rc;
        GetClientRect(&rc);
        rc.left = m_Point.x - 10;
        rc.right = m_Point.x + 10;
        InvalidateRect(&rc);
                     m_Point = point;
m_Point是定义的成员变量,但上面还需要InvalidateRect

自绘窗口边框:
BitBlt只能拷贝BITMAP,先从hmemdcCopy得到BITMAP,再贴到hDC上

注意:本人主要给出解决方案,具体代码问题请自行解决。

46 楼

玩命玩童:
是什么错误

47 楼

楼主能帮我看看我今天发的那个帖子吗

48 楼

或者我帮我现在的程序发到您邮箱 行吗

49 楼

楼主还在线吗

50 楼

谢谢楼主,按你的做出来了,但感觉跟先前我的方法效果没有什么差别。可能是我那些地方没注意到,再次谢谢楼主。

我来回复

您尚未登录,请登录后再回复。点此登录或注册