ポップアップメニューの実装

  メニューリソース



  
IDR_MENU1 MENU DISCARDABLE 
BEGIN
    POPUP "ポップアップメニュー1"
    BEGIN
        MENUITEM "ポップアップメニュー1の処理1", IDM_POPUP1_ACT1
        MENUITEM "ポップアップメニュー1の処理2", IDM_POPUP1_ACT2
    END
    POPUP "ポップアップメニュー2"
    BEGIN
        MENUITEM "ポップアップメニュー2の処理1", IDM_POPUP2_ACT1
        MENUITEM "ポップアップメニュー2の処理2", IDM_POPUP2_ACT2
    END
END
  



  InitWndProc.cpp



  
#include "stdafx.h"

#define MyEXTERN extern
#include "ListView.h"

// *********************************************************
//   関数: InitWndProc
// *********************************************************
void InitWndProc( HWND hWnd )
{
	// リストビューの作成
	Lview = new LboxListview(
		hWnd,
		LBOX_LISTVIEW_CREATE
	);
	// グリッドオプション
	Lview->Grid( );
	// フォント設定 ( MS Pゴシック )
	Lview->SetFont( 0, 10, false );
	// ポップアップメニューの実装
	Lview->CreatePopup( IDR_MENU1, 0 );

	// メインウインドウ登録
	Win = new LboxWin( hWnd );
	// ステータスバー実装
	Win->StatusCreate( ID_STATUS );
	// ステータスバー表示
	Win->StatusSetText( "ListView スケルトン" );
	// デスクトップフィットサイズ
	Win->ScreenFit( );
}
  



  WndProc.cpp

  
#include "stdafx.h"

#define MyEXTERN extern
#include "ListView.h"

// *********************************************************
//  関数: WndProc
// *********************************************************
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch( message ) {
		// 初期処理
		case WM_CREATE:
			InitWndProc( hWnd );
			break;

		// サイズ変更
		case WM_SIZE:
			Win->StatusFit( wParam, lParam );
			Lview->ParentFit(
				(DWORD)wParam,
				0, 0,
				0, Win->GetHeight( Win->hStatus )
			);
			break;

		// オペレータイベント
		case WM_COMMAND:
			return OperatorEvent( hWnd, message, wParam, lParam );

		// リストビューの通知イベント
		case WM_NOTIFY:
			Lview->Notify( lParam );
			break;

		// 終了処理
		case WM_DESTROY:
			EndWndProc( hWnd );

			PostQuitMessage( 0 );
			break;

		default:
			return DefWindowProc( hWnd, message, wParam, lParam );
	}
	return 0;
}
  



  OperatorEvent.cpp

  
#include "stdafx.h"

#define MyEXTERN extern
#include "ListView.h"

// *********************************************************
//   関数: OperatorEvent
// *********************************************************
LRESULT CALLBACK OperatorEvent(
HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
	int wmId, wmEvent;

	wmId = LOWORD(wParam);
	wmEvent = HIWORD(wParam);

	switch( wmId ) {
		case IDM_ABOUT:
			// About ダイアログ呼び出し
			DialogBox( hInst,
				(LPCTSTR)IDD_ABOUTBOX,
				hWnd,
				(DLGPROC)About
			);
			break;
		case IDM_EXIT:
			// アプリケーション終了
			Win->Destroy( );
			break;

		// ポップアップメニューの動作テスト
		case IDM_POPUP1_ACT1:
			Win->MsgOk( "ポップアップメニューを【2】に変更します" );
			// 2番目のポップアップメニューに変更
			Lview->nCurrentPopup = 1;
			break;

		case IDM_POPUP2_ACT1:
			Win->MsgOk( "ポップアップメニューを【1】に変更します" );
			// 1番目のポップアップメニューに変更
			Lview->nCurrentPopup = 0;
			break;

		default:
			return DefWindowProc( hWnd, message, wParam, lParam );
	}
	return 0;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ