Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 骰子位图_C++_Visual Studio 2012_Mfc_Bitmap - Fatal编程技术网

C++ 骰子位图

C++ 骰子位图,c++,visual-studio-2012,mfc,bitmap,C++,Visual Studio 2012,Mfc,Bitmap,您将如何滚动骰子并显示相应的模具面位图 一些快速有效的代码示例 void CMFCApplication12Dlg::OnBnClickedDiceroll() { int die1 = 1 + rand() % 6; // first die roll int die2 = 1 + rand() % 6; // second die roll //display die1 & die2 } // void CMFCApp

您将如何滚动骰子并显示相应的模具面位图

一些快速有效的代码示例

void CMFCApplication12Dlg::OnBnClickedDiceroll()

    {  
       int die1 = 1 + rand() % 6; // first die roll
       int die2 = 1 + rand() % 6; // second die roll
       //display die1 & die2
    }
// void CMFCApplication12Dlg::OnPaint处理程序()


使用使窗口无效,以便它重新绘制自身。在
WM_PAINT
处理程序中,需要将模具编号转换为资源ID。然后使用
LoadImage
从资源加载位图。创建一个内存DC并将位图选择到其中,然后使用
BitBlt
将其复制到窗口。

@Mac您的代码看起来是一个很好的开始。与其将其放入OnBnClicked处理程序,不如将其放入OnPaint处理程序。您不需要CClientDC,因为您将在OnPaint中自动获得一个。@Mac正如我所说,您调用InvalidateBu立,OnPaint将因此被调用。
{
//load the image file
    CString szFilename("C:\\Talla\\yourimg.bmp");
    HBITMAP hBmp = (HBITMAP)::LoadImage(NULL,szFilename,
    IMAGE_BITMAP,0,0,
    LR_LOADFROMFILE|LR_CREATEDIBSECTION);

//Create a Bitmap Object and Attach It to the Object
    CBitmap bmp;
    bmp.Attach(hBmp);

// Create a Memory DC and Select the BMP to It
    CClientDC dc(this);
    CDC bmDC;
    bmDC.CreateCompatibleDC(&dc);
    CBitmap *pOldbmp = bmDC.SelectObject(&bmp);

//Get the BMP Height and Width 
    BITMAP bi;
    bmp.GetBitmap(&bi);

//Get the Block of Pixels from memoryDC to the Screen

    dc.BitBlt(0,0,bi.bmWidth,bi.bmHeight,&bmDC,0,0,SRCCOPY);
    bmDC.SelectObject(pOldbmp);
    }