• ベストアンサー

API関数 GetPixel

質問ですが、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はないのでしょうか。なにとぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

質問の意図がよくわかりませんが(^^; MFCだと COLORREF CDC::GetPixel(int x, int y, POINT pt); 単なるAPIだと COLORREF GetPixel(HDC hdc, int x, int y); て感じでしょうか… MSDNに入ってますよ…。

noname#105193
質問者

お礼

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

その他の回答 (3)

  • thulala
  • ベストアンサー率63% (7/11)
回答No.4

http://oshiete1.goo.ne.jp/kotaeru_reply.php3?q=890976 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); } /////////////////////////////////////////////////////////////////////

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.3

ヘルプ(ExcelなどのVBAでも可)で調べればわかると思いますが Option Explicit … VBAで変数の宣言を強制する(宣言しないで使用するとエラーになる) これこそ何もする必要はありません。

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

VBから Windows API を使用するための宣言だから、何もしなくてもいいのでは? 未定義関数としてコンパイルエラーになるなら、wingdi.hをインクルードすればいいと思いますよ。 …VC++のヘルプでGetPixelを検索すればGetPixelの説明が出てきて、インクルードすべきファイルが出ませんか?

noname#105193
質問者

補足

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

関連するQ&A

専門家に質問してみよう