::BitBlt(hdc,0,0,rc.Width(),rc.Height(),m_dcMemory.GetSafeHdc(),0,0,SRCCOPY);

renbin5566 2018-04-03 05:56:07
void CGame::GameRunDram()
{
HDC hdc = ::GetDC(m_hWnd);
CRect rc;
GetClientRect(m_hWnd, &rc);
CDC *dc = CClientDC::FromHandle(hdc);
CDC m_dcMemory;
CBitmap bmp;
bmp.CreateCompatibleBitmap(dc, rc.Width(), rc.Height());
m_dcMemory.CreateCompatibleDC(dc);
CBitmap* p0ldBitmap = m_dcMemory.SelectObject(&bmp);


Graphics gh(m_dcMemory.GetSafeHdc());
gh.Clear(Color::White);
gh.ResetClip();
DrawFps(gh);
::BitBlt(hdc,0,0,rc.Width(),rc.Height(),m_dcMemory.GetSafeHdc(),0,0,SRCCOPY);

dc->DeleteDC();
return;




}

void CGame::DrawFps(Graphics &gh)
{
static int fps = 0;
m_fps++;
static DWORD dwLast = GetTickCount();
if (GetTickCount() - dwLast >= 1000) {
fps = m_fps;
m_fps = 0;
dwLast = GetTickCount();

}
{

CString s;
FontFamily* fontFamily = new FontFamily(_T("宋体"));
//FontFamily fontFamily(L"楷体");
s.Format(_T("FPS:%d"), fps);
SolidBrush brush(Color(0x00, 0x00, 0xFF));

Gdiplus::Font font1(fontFamily,10.0);
CRect rc;
::GetClientRect(m_hWnd, &rc);

PointF origin(static_cast<float>(rc.right - 50),
static_cast<float>(rc.top + 2));



}

}

大虾们帮忙看看 解决问题立刻结贴
...全文
292 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2018-04-09
  • 打赏
  • 举报
回复
引用 3 楼 renbin5566 的回复:
这段程序没问题,问题出在GDI+没有初始化 还是谢谢
忘了这一茬
renbin5566 2018-04-03
  • 打赏
  • 举报
回复
这段程序没问题,问题出在GDI+没有初始化 还是谢谢
renbin5566 2018-04-03
  • 打赏
  • 举报
回复
你好 这是书上的原代码 我仔细
引用 1 楼 SXJIAKE 的回复:
应该创建一个窗口应用程序,在 WM_PAINT 中绘制,而不是命令行程序中。
你好 我是新手 为什么不可以在内存中创建一个照片,直接复制到游戏窗口。这也是书里面的源代码 我看了半天也没发现什么问题 帮忙解决下 不省感激
「已注销」 2018-04-03
  • 打赏
  • 举报
回复
应该创建一个窗口应用程序,在 WM_PAINT 中绘制,而不是命令行程序中。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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