VisualC++.net2003のMFCのダイアログベースのアプリケーションを作って
スクリーン領域を確保して画像を表示させることを考えているのですが、
Panel(void)
{
wh->Create(NULL, "Screen", WS_POPUP|WS_VISIBLE,
CRect(StartX, StartY, StartX+Width, StartY+Height), NULL, NULL, 0, NULL);
pDC = wh->GetDC();
BYTE* m_BmpImage;
LPBITMAPINFO m_BmpInfo;
BITMAPFILEHEADER m_BmpFileHdr;
CBitmap pB;
BITMAPINFOHEADER bi;
CPalette *pOldPal = 0;
bitm = (BITMAPINFO*)LocalAlloc(LPTR, sizeof(RGBQUAD)*256+sizeof(BITMAPINFOHEADER));
for(int i = 0; i < 256; ++i) {
bitm->bmiColors.rgbRed = (BYTE)i;
bitm->bmiColors.rgbGreen = (BYTE)i;
bitm->bmiColors.rgbBlue = (BYTE)i;
bitm->bmiColors.rgbReserved =(BYTE)0;
}
bitm->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bitm->bmiHeader.biPlanes = 1;
bitm->bmiHeader.biCompression = BI_RGB;
bitm->bmiHeader.biXPelsPerMeter = 0;
bitm->bmiHeader.biYPelsPerMeter = 0;
bitm->bmiHeader.biClrUsed = 0;
bitm->bmiHeader.biClrImportant= 0;
bitm->bmiHeader.biWidth = Width3D;
bitm->bmiHeader.biHeight = Height3D;
bi.biSize = sizeof(BITMAPINFOHEADER);
bi.biPlanes = 1;
bi.biCompression = BI_RGB;
bi.biXPelsPerMeter = 0;
bi.biYPelsPerMeter = 0;
bi.biClrUsed = 0;
bi.biClrImportant = 0;
bi.biWidth = Width;
bi.biHeight = Height;
bitm->bmiHeader.biBitCount = 24;
bi.biBitCount = 24;
bitm->bmiHeader.biSizeImage = Width*Height*3;
bi.biSizeImage = Width*Height*3;
m_hbitmap = ::CreateDIBSection(*pDC, bitm, DIB_RGB_COLORS, (VOID**)&m_bits, 0, 0);
pM.CreateCompatibleDC(pDC);
oldBitmap = pM.SelectObject(CBitmap::FromHandle(m_hbitmap));
}
void Draw(unsigned char* buff)
{
int p;
int dp;
unsigned char line[Width*3], linebmp[Width*3];
for(int i = 0; i < Height; ++i) {
memcpy(line, &buff[i*Width*3], Width*3);
p = 0;
dp = 0;
for(int j = 0; j < Width; ++j) {
linebmp[dp+2] = line[p++];
linebmp[dp+1] = line[p++];
linebmp[dp] = line[p++];
dp += 3;
}
memcpy(m_bits+(Height-1-i)*Width*3, linebmp, Width*3);
}
pDC->BitBlt(0, 0, Width, Height, &pM, 0, 0, SRCCOPY);
}
という感じにスクリーン領域を確保してこの範囲に画像を表示させることができましたが、
このスクリーン領域に画像を表示させると、表示させた画像全体が白い枠線に囲まれてしまいます。
解決策はないでしょうか?
白い枠線ができてしまいます
Re:白い枠線ができてしまいます
いえいえ、いきなりよく考えもせず質問してしまってすみませんでした。
ウインドウスタイルのWS_POPUPをWS_CHILDにすれば枠線は消えるんですが
色々とエラーが。。。
ぶしつけな質問ですみませんでした。
ウインドウスタイルのWS_POPUPをWS_CHILDにすれば枠線は消えるんですが
色々とエラーが。。。
ぶしつけな質問ですみませんでした。