Microsoft Visual C/C++ 6.0のコードにSoftAdを組み込む例を示します。他の環境では一部を変更する必要があるかもしれません。SoftAd.hとSoftAd.libを使用します。
#include <windows.h> #include "SoftAd.h" #define FC_EXIT 100 #define FC_AD 200 // 他のメニュー項目と重ならない任意のメニュー識別子 LRESULT CALLBACK WndProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ); int WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, char* cmdlin, int showFlag ) { static char className[] = "HelloClass"; WNDCLASSEX wc; HMENU hMenu; HWND hwnd; MSG msg; memset( &wc, 0, sizeof( wc ) ); wc.cbSize = sizeof( wc ); wc.lpfnWndProc = WndProc; wc.hInstance = hInst; wc.lpszClassName = className; wc.style = CS_HREDRAW|CS_VREDRAW; wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH ); RegisterClassEx( &wc ); hMenu = CreateMenu(); InsertMenu( hMenu, 0, MF_BYPOSITION, FC_EXIT, "終了(X)" ); hwnd = CreateWindow( className, "Hello", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, hMenu, hInst, NULL ); ShowWindow( hwnd, showFlag ); UpdateWindow( hwnd ); SA_Initialize( hwnd, NULL, FC_AD, <SoftID> ); // 初期化。<SoftID> には、ソフトウェア登録時に提供されたID(数値)を指定します。 // この初期化はWM_CREATEハンドラ内で行うこともできます。 while ( GetMessage( &msg, NULL, 0, 0 ) ) { TranslateMessage( &msg ); DispatchMessage( &msg ); } SA_Cleanup(); // 後始末 return msg.wParam; } LRESULT CALLBACK WndProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam ) { LRESULT res = 0; switch( iMsg ) { case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint( hwnd, &ps ); RECT rc; GetClientRect( hwnd, &rc ); DrawText( hdc, "Hello World!", -1, &rc, DT_CENTER|DT_VCENTER|DT_SINGLELINE ); EndPaint( hwnd, &ps ); break; } case WM_COMMAND: { int fc = LOWORD( wParam ); if ( fc == FC_EXIT ) PostQuitMessage( 0 ); break; } case WM_DESTROY: PostQuitMessage( 0 ); break; case WM_MEASUREITEM: SA_InitMenuItem( (MEASUREITEMSTRUCT*)lParam ); // オーナ描画メッセージを転送 break; case WM_DRAWITEM: SA_DrawMenuItem( (DRAWITEMSTRUCT*)lParam ); // オーナ描画メッセージを転送 break; // 他にもオーナー描画項目がある場合、上の2つのハンドラでは、構造体メンバの // CtlTypeとCtlIDを使ってメッセージ送付先項目を判別してください。 default: res = DefWindowProc( hwnd, iMsg, wParam, lParam ); } return( res ); }
cl /c Hello.c
link Hello.obj -SUBSYSTEM:WINDOWS user32.lib gdi32.lib SoftAd.lib
SoftAd Copyright © Tama Software Ltd.