【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

質問ですが、Visual Basicで

Option Explicit

Private Declare Function Getpixel Lib "gdi32" (_
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long, _
) As Long

というソース部分があるのですが、これをVC++で書き直すとしたらどのようになるのでしょうか。また、VC++のAPI関数にはGetPixelはないのでしょうか。なにとぞよろしくお願いいたします。

A 回答 (4件)

質問の意図がよくわかりませんが(^^;



MFCだと
COLORREF CDC::GetPixel(int x, int y, POINT pt);

単なるAPIだと
COLORREF GetPixel(HDC hdc, int x, int y);

て感じでしょうか…
MSDNに入ってますよ…。
    • good
    • 0
この回答へのお礼

ありがとうございます。確かに載っていたと思うのですが(汗)、VC++の使い方自体があまりよくわかっておらずなかなか苦労しています。APIを使いたいので2番目の式でいいと思います。本当にありがとうございますした。

お礼日時:2004/06/13 21:56

http://oshiete1.goo.ne.jp/kotaeru_reply.php3?q=8 …
API関数 GetPixel
/////////////////////////////////////////////////////////////////////Win32
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
for(int i=20;i<40;i++)
{
for(int j=20;j<40;j++)
{
SetPixel(hdc,i,j,RGB(255,0,0));
}
}
EndPaint(hWnd, &ps);
break;

case WM_LBUTTONDOWN:
COLORREF color;
hdc=GetDC(hWnd);
color=GetPixel(hdc,30,30);
//color=RGB(0,0,255);
for(int i=120;i<140;i++)
{
for(int j=120;j<140;j++)
{
SetPixel(hdc,i,j,color);
}
}
ReleaseDC(hWnd,hdc);
break;
/////////////////////////////////////////////////////////////////////MFC
void CProject1View::OnDraw(CDC* pDC)
{
CProject1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
for(int i=20;i<40;i++)
{
for(int j=20;j<40;j++)
{
pDC->SetPixel(i,j,RGB(0,0,255));
}
}
}
void CProject1View::OnLButtonDown(UINT nFlags, CPoint point)
{
COLORREF color;
CDC *pDC=GetDC();
color=pDC->GetPixel(30,30);
//color=RGB(255,255,0);
for(int i=120;i<140;i++)
{
for(int j=120;j<140;j++)
{
pDC->SetPixel(i,j,color);
}
}
ReleaseDC(pDC);
CView::OnLButtonDown(nFlags, point);
}
/////////////////////////////////////////////////////////////////////
    • good
    • 0

ヘルプ(ExcelなどのVBAでも可)で調べればわかると思いますが



Option Explicit … VBAで変数の宣言を強制する(宣言しないで使用するとエラーになる)

これこそ何もする必要はありません。
    • good
    • 0

VBから Windows API を使用するための宣言だから、何もしなくてもいいのでは?


未定義関数としてコンパイルエラーになるなら、wingdi.hをインクルードすればいいと思いますよ。

…VC++のヘルプでGetPixelを検索すればGetPixelの説明が出てきて、インクルードすべきファイルが出ませんか?

この回答への補足

質問に答えてくれてありがとうございます。追加で質問ですが、 Option Explicit というのはどのような意味なのでしょうか。また、VC++にも書かなくてはならないのでしょうか。

補足日時:2004/06/13 21:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!