通用网络游戏开发框架

源代码在线查看: control.cpp

软件大小: 185 K
上传用户: atom0722
关键词: 网络游戏
下载地址: 免注册下载 普通下载 VIP

相关代码

				// ============================================================================
				// Control implementation
				//
				// (c) 2003 Ken Reed
				//
				// This is free software. You can redistribute it and/or modify it under the
				// terms of the GNU General Public License version 2 as published by the Free
				// Software Foundation.
				// ============================================================================
				
				#include "stdafx.h"
				#include "control.h"
				#include "exception.h"
				
				#include 
				#include 
				
				using namespace std;
				
				namespace {
				   vector controls;
				}
				
				
				// ============================================================================
				// Construction
				// ============================================================================
				
				Control::Control(const int control_id)
				{
				   id = control_id;
				   controls.push_back(this);
				}
				
				
				// ============================================================================
				// Register controls
				// ============================================================================
				
				void register_controls(HWND dialog_window)
				{
				   vector::iterator p;
				
				   for (p = controls.begin(); p != controls.end(); p++) {
				      (*p)->dialog = dialog_window;
				      (*p)->handle = GetDlgItem(dialog_window, (*p)->id);
				      if ((*p)->handle == 0) {
				         Win_exception e("Could not obtain control handle");
				         RAISE(e);
				      }
				   }
				}
				
				
				// ============================================================================
				// Get check button state
				// ============================================================================
				
				bool Control::get_state()
				{
				   int state = IsDlgButtonChecked(dialog, id);
				   if (state == BST_CHECKED) {
				      return true;
				   }
				
				   return false;
				}
				
				
				// ============================================================================
				// Set enabled state
				// ============================================================================
				
				void Control::enable(bool state)
				{
				   EnableWindow(handle, state);
				}
				
				
				// ============================================================================
				// Set checked state
				// ============================================================================
				
				void Control::checked(bool set_tick)
				{
				   if (set_tick) {
				      SendMessage(handle, BM_SETCHECK, BST_CHECKED, 0);
				   }
				   else {
				      SendMessage(handle, BM_SETCHECK, BST_UNCHECKED, 0);
				   }
				}
				
				
				// ============================================================================
				// Set range
				// ============================================================================
				
				void Control::set_range(int low, int high)
				{
				   SendMessage(handle, UDM_SETRANGE, 0, MAKELONG(high, low));
				}
				
				
				// ============================================================================
				// Set value
				// ============================================================================
				
				void Control::set_value(int value)
				{
				   SendMessage(handle, UDM_SETPOS, 0, MAKELONG(value, 0));
				}
				
				
				// ============================================================================
				// Get value
				// ============================================================================
				
				int Control::get_value()
				{
				   return (int) SendMessage(handle, UDM_GETPOS, 0, 0);
				}
				
				
				// ============================================================================
				// Convert to HWND
				// ============================================================================
				
				Control::operator HWND() const
				{
				   return handle;
				}
							

相关资源