Visual Studio C++ 2008/2010 Express Edition¤ÇWindows¥Õ¥©¡¼¥à¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Çwin32api¤ò»ÈÍѤ¹¤ë¡£¤½¤Î£²
c++ cli ¡¡£Æ£ï£ò£í¡¡¤Ç¡¡¥Ç¥£¥¹¥×¥ì¥¤¡¡²òÁüÅÙ¤ÎÊѹ¹¥×¥í¥°¥é¥à¤òºî¤ë
³Ø½¬ÆâÍÆ¡¡
£±¡¥¡¡c++ cli Form ¤Çwin32api¤ò»ÈÍÑ
£²¡¥ ref class »²¾È¥¯¥é¥¹¤ÎÇÛÎó¤òºî¤ë
£³¡¥¡¡²èÌÌ¡¡²òÁüÅÙ¤ÎÊѹ¹
£´¡¥¡¡¥Õ¥©¡¼¥àForm¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é°ú¿ô¤òÆÉ¤ß¹þ¤à
£µ¡¥¡¡¥Ç¥¹¥¯¥È¥Ã¥×¤Ë°ú¿ôÉÕ¤¤Î¥·¥ç¡¼¥È¥«¥Ã¥È¤òºî¤ë
6.¡¡¡¡²òÁüÅÙ¤ÎÊѹ¹¡¡¥Þ¥ë¥Á¥Ç¥£¥¹¥×¥ì¥¤Âбþ¡¡¥«¥¹¥¿¥à²òÁüÅÙÂбþ
7.¡¡¡¡²òÁüÅÙ¤ÎÊѹ¹¤ò¥ì¥¸¥¹¥¿ÅÐÏ¿¤¹¤ë
Visual Studio C++ 2008/2010 Express Edition¤ÇWindows¥Õ¥©¡¼¥à¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Ï£Ã¡Ü¡Ü¡¿£Ã£Ì£É¤¬ºÎÍѤµ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢.NET Framework¤ò»ÈÍѤ¹¤ë¡£
ÍÎÁÈǤˤϣͣƣä¬ÉÕ¤¤¤Æ¤¤¤ë¤¬¡¢ÌµÎÁÈǤˤϤʤ¤¡££Æ£ï£ò£í¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë£÷£é£î£³£²£á£ð£é¤ò»ÈÍѤ¹¤ë¤³¤È¤Ï¸æË¡Å٤Τ褦¤Ç¤¢¤ë¤¬¡¢¼ÙÆ»¤Ç»È¤¦ÊýË¡
¤Þ¤Ç¥×¥í¥¸¥§¥¯¥È¤Ç£Æ£ï£ò£í¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òºîÀ®¡¢ º£²ó¤ÎºîÀ®¤Ç¤Ï ref class »²¾È¥¯¥é¥¹¤ÎÇÛÎó¤òºî¤ë¡£¥Õ¥©¡¼¥àForm¤Ë¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é°ú¿ô¤òÆÉ¤ß¹þ¤à¤¿¤á¡¢¼¡¤Î¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤Ç»ÈÍѤ¹¤ë¡£
¥³¥ó¥Ñ¥¤¥ë¤Î½àÈ÷¡¡¡¡¥×¥í¥¸¥§¥¯¥È¡¡¥×¥í¥Ñ¥Æ¥£¡¡Á´ÈÌ
¥×¥í¥¸¥§¥¯¥È¡¡¥×¥í¥Ñ¥Æ¥£¡¡¥ê¥ó¥«¡¼¡¡¥³¥Þ¥ó¥É¥é¥¤¥ó
/INCREMENTAL /NOLOGO "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib"
º£²óºî¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó
¥Ç¥Ð¥Ã¥¯¡¡¥â¡¼¥É¤Ç¤Ï¡¡¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é
resolution_change.exe 1024 768 32 60¡¡¤Ç°ú¿ô¤òÅϤ¹¤³¤È¤¬¤Ç¤¤ë
¸«ËܤΥÀ¥¦¥ó¥í¡¼¥É¡¡exe zip Ž¿Ž°Ž½
Microsoft .NET Framework 4 (Web ¥¤¥ó¥¹¥È¡¼¥é¡¼) ¤¬É¬Í×
¤É¤¦¤·¤Æ¤â£Ä£Ì£Ì¤Ç¤·¤«¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Ê¤¤¤È¤¤Ï¡¡vcredist_x86.exe¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¬É¬Í×
£ã£ì£ò¤È¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¡¿£Í£Ô¤ÏÊ»ÍѤǤ¤Ê¤¤
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84
ÀÖ»ú¤ÏÆþÎÏ
// disp32form1.cpp : ¥á¥¤¥ó ¥×¥í¥¸¥§¥¯¥È ¥Õ¥¡¥¤¥ë¤Ç¤¹¡£
#include "stdafx.h"
#include "Form1.h"
using namespace disp32form1;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// ¥³¥ó¥È¥í¡¼¥ë¤¬ºîÀ®¤µ¤ì¤ëÁ°¤Ë¡¢Windows XP ¥Ó¥¸¥å¥¢¥ë¸ú²Ì¤ò͸ú¤Ë¤·¤Þ¤¹
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// ¥á¥¤¥ó ¥¦¥£¥ó¥É¥¦¤òºîÀ®¤·¤Æ¡¢¼Â¹Ô¤·¤Þ¤¹
Application::Run(gcnew Form1(args)); //args¤òÉÕ¤±¤ë
return 0;
}
stdafx.h¤ÎÆâÍÆ
// stdafx.h : ɸ½à¤Î¥·¥¹¥Æ¥à ¥¤¥ó¥¯¥ë¡¼¥É ¥Õ¥¡¥¤¥ë¤Î¥¤¥ó¥¯¥ë¡¼¥É ¥Õ¥¡¥¤¥ë¡¢¤Þ¤¿¤Ï
// »²¾È²ó¿ô¤¬Â¿¤¯¡¢¤«¤Ä¤¢¤Þ¤êÊѹ¹¤µ¤ì¤Ê¤¤¡¢¥×¥í¥¸¥§¥¯¥ÈÀìÍѤΥ¤¥ó¥¯¥ë¡¼¥É ¥Õ¥¡¥¤¥ë
// ¤òµ½Ò¤·¤Þ¤¹¡£
#pragma once
#include"windows.h"
#include "commctrl.h"
#include <SDKDDKVer.h>
#include "d_data.h"
#include <commctrl.h>
#include <shlobj.h>
// compile with: /clr
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
// ¥Þ¡¼¥·¥ã¥ê¥ó¥°ÍѥإåÀ
//http://msdn.microsoft.com/ja-jp/library/bb531313.aspx
#include <msclr/marshal.h>
d_data.cpp
#include "StdAfx.h"
#include "d_data.h"
d_data::d_data(void){
no=-1;
x_data=0;
y_data=0;
perpel=0;
hz=0;
}
d_data.h
#pragma once
ref class d_data
{
public:
d_data(void);
int no;
int x_data;
int y_data;
int perpel;
int hz;
};
disp.h
#pragma once
ref class disp
{
public:
// DEVMODE* dispmode; // ¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É // ¥Í¥¤¥Æ¥£¥Ö¡¦¥³¡¼¥É¤Î¥¯¥é¥¹¡Ê¢¨¥Ý¥¤¥ó¥¿¡Ë
static array<d_data^>^ disp_data; //»²¾È¥¯¥é¥¹¤ÎÇÛÎó¤Î¼ýǼ¾ì½ê¤òºî¤ë
int old_no;
int old_x_data;
int old_y_data;
int old_perpel;
int old_hz;
int disp_end_no;
int pr_sec_flag;
disp(void);
//========================
// PDISPLAY_DEVICE lpDisplayDevice; // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¾ðÊó¤ò¼õ¤±¼è¤ë¹½Â¤ÂΤؤΥݥ¤¥ó¥¿
LPCTSTR lpszDeviceName; // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹ NULL¤Ï¥×¥é¥¤¥Þ¥ê¡¼¤Ë¤Ê¤ë
//======================-
int disp_device(DWORD iDevNum);
int disp_use(DWORD iDevNum);
void disp_old(void);
int disp_chang(int width_x,int height_y,int perpel, int frequency_hz, DWORD iDevNum,int reg_w);
//bool GetDisplayDeviceName(CAtlStringArray& astrDeviceName);
int disp_no(DWORD iDevNum);
};
disp.cpp
#include "StdAfx.h"
#include "disp.h"
#include "d_data.h"
//=====================
#include <tchar.h> // L _T
disp::disp(void)
{
static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
disp_data = gcnew array<d_data^> (1000); //»²¾È¥¯¥é¥¹¤ÎÇÛÎó¤Î¼ýǼ¾ì½ê¤òºî¤ë
// DWORD dispNO=0;
// lpszDeviceName=disp::disp_device(dispNO);
EnumDisplaySettings( NULL, ENUM_REGISTRY_SETTINGS, &dispmode ); // NULL¤Ï¥×¥é¥¤¥Þ¥ê¡¼¥Ç¥£¥¹¥×¥ì¥¤²òÁüÅ٤Υ쥸¥¹¥È¥êÊݸÃͤòµá¤á¤ë
// EnumDisplaySettings( lpszDeviceName, ENUM_REGISTRY_SETTINGS, &dispmode ); //¡¡¥Ç¥£¥¹¥×¥ì¥¤²òÁüÅ٤Υ쥸¥¹¥È¥êÊݸÃͤòµá¤á¤ë
old_x_data = dispmode.dmPelsWidth;
old_y_data = dispmode.dmPelsHeight;
old_perpel = dispmode.dmBitsPerPel;
old_hz = dispmode.dmDisplayFrequency;
}
int disp::disp_no(DWORD iDevNum){
static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
//============================
DISPLAY_DEVICE dispDevice = {sizeof(dispDevice)}; //http://oshiete.goo.ne.jp/qa/4621536.html
// DWORD iDevNum = 0; // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¤¬ 3 ¤Ä¤¢¤ë¾ì¹ç¡¢³Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÃͤϡ¢0¡¢1¡¢2 ¤È¤Ê¤ê¤Þ¤¹¡£DWORD iDevNum = 0;
DWORD dwFlags=NULL;
if(!EnumDisplayDevices(0,iDevNum,&dispDevice,0) ){
MessageBox(NULL, TEXT("¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¼èÆÀ¼ºÇÔ¤·¤Þ¤·¤¿"), TEXT(""), 0);
return 1;
}
else {// MessageBox(NULL, TEXT(dispDevice.DeviceName), TEXT(""), 0); //¥Ç¥£¥¹¥×¥ì¥¤¥Í¡¼¥à¤Î¥Á¥§¥Ã¥¯ÍÑ
}
//===========================-dispDevice.DeviceName
EnumDisplaySettings( dispDevice.DeviceName, ENUM_REGISTRY_SETTINGS, &dispmode ); // NULL¤Ï¥×¥é¥¤¥Þ¥ê¡¼¥Ç¥£¥¹¥×¥ì¥¤²òÁüÅ٤Υ쥸¥¹¥È¥êÊݸÃͤòµá¤á¤ë
// EnumDisplaySettings( lpszDeviceName, ENUM_REGISTRY_SETTINGS, &dispmode ); //¡¡¥Ç¥£¥¹¥×¥ì¥¤²òÁüÅ٤Υ쥸¥¹¥È¥êÊݸÃͤòµá¤á¤ë
old_x_data = dispmode.dmPelsWidth;
old_y_data = dispmode.dmPelsHeight;
old_perpel = dispmode.dmBitsPerPel;
old_hz = dispmode.dmDisplayFrequency;
return 0;
}
//http://support.microsoft.com/kb/197671/ja
//http://www.atelier-blue.com/program/mdirectx/3d/3d02-05.htm direct3d
//LPCTSTR disp::disp_device(DWORD iDevNum){ // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¤¬ 3 ¤Ä¤¢¤ë¾ì¹ç¡¢³Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÃͤϡ¢0¡¢1¡¢2 ¤È¤Ê¤ê¤Þ¤¹¡£
int disp::disp_device(DWORD iDevNum){ // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¤¬ 3 ¤Ä¤¢¤ë¾ì¹ç¡¢³Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÃͤϡ¢0¡¢1¡¢2 ¤È¤Ê¤ê¤Þ¤¹¡£
//static DEVMODE dispmode; // ¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É
DISPLAY_DEVICE dispDevice = {sizeof(dispDevice)}; //http://oshiete.goo.ne.jp/qa/4621536.html
iDevNum = 0; // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¤¬ 3 ¤Ä¤¢¤ë¾ì¹ç¡¢³Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÃͤϡ¢0¡¢1¡¢2 ¤È¤Ê¤ê¤Þ¤¹¡£DWORD iDevNum = 0;
//pfnEnumDisplayDrivers(0, nDevNum, &dispDevice, 0);
DWORD dwFlags=NULL;
// if(!EnumDisplayDevices(NULL,iDevNum,&dispDevice,dwFlags) ){
if(!EnumDisplayDevices(0,iDevNum,&dispDevice,0) ){
// lpDisplayDevice.DeviceName;
MessageBox(NULL, TEXT("¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¼èÆÀ¼ºÇÔ¤·¤Þ¤·¤¿"), TEXT(""), 0);
return -1;//"\\.\DISPLAY1";
}
else { MessageBox(NULL, TEXT(dispDevice.DeviceName), TEXT(""), 0); //¥Ç¥£¥¹¥×¥ì¥¤¥Í¡¼¥à¤Î¥Á¥§¥Ã¥¯ÍÑ
}
return 0;//dispDevice.DeviceName;
}
int disp::disp_use(DWORD iDevNum)
{
//»ÈÍѤǤ¤ë¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤Î³Îǧ ÇÛÎó¤Ë¼ýǼ
static DEVMODE dispmode; // ¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É
int disp_no;
//============================
DISPLAY_DEVICE dispDevice = {sizeof(dispDevice)}; //http://oshiete.goo.ne.jp/qa/4621536.html
// DWORD iDevNum = 0; // ¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¤¬ 3 ¤Ä¤¢¤ë¾ì¹ç¡¢³Æ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÎÃͤϡ¢0¡¢1¡¢2 ¤È¤Ê¤ê¤Þ¤¹¡£DWORD iDevNum = 0;
DWORD dwFlags=NULL;
if(!EnumDisplayDevices(0,iDevNum,&dispDevice,0) ){
MessageBox(NULL, TEXT("¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¼èÆÀ¼ºÇÔ¤·¤Þ¤·¤¿"), TEXT(""), 0);
return 1;
}
else {// MessageBox(NULL, TEXT(dispDevice.DeviceName), TEXT(""), 0); //¥Ç¥£¥¹¥×¥ì¥¤¥Í¡¼¥à¤Î¥Á¥§¥Ã¥¯ÍÑ
}
//===========================-
disp_no = 0;
while( TRUE )
{
//Á´¥â¡¼¥É¤ÎÎóµó
// if( !EnumDisplaySettings( lpDisplayDevice->DeviceName, disp_no, &dispmode ) ) break;
// if( !EnumDisplaySettings( NULL, disp_no, &dispmode ) ) break;
if( !EnumDisplaySettings(dispDevice.DeviceName, disp_no, &dispmode ) ) return 0;
// ¥ê¥Ã¥Á¥Æ¥¥¹¥È¤Ëɽ¼¨¤¹¤ë
disp_data[disp_no]=gcnew d_data; //½ÅÍ× ¥¯¥é¥¹¤ÎÇÛÎó¤ÎÃæ¿È¤Î³ÎÊÝ
disp_data[disp_no]->no = disp_no;
disp_data[disp_no]->x_data =dispmode.dmPelsWidth; // ²òÁüÅÙ²£¥µ¥¤¥º¡Êwidth x¡Ë
disp_data[disp_no]->y_data =dispmode.dmPelsHeight; // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
disp_data[disp_no]->perpel =dispmode.dmBitsPerPel; // £±¥Ô¥¯¥»¥ëÅö¤¿¤ê¤Î¥Ó¥Ã¥È¿ô
disp_data[disp_no]->hz =dispmode.dmDisplayFrequency; // ¥ê¥Õ¥ì¥Ã¥·¥å¼þÇÈ¿ô
pr_sec_flag=dispmode.dmDisplayFlags; // ¥×¥é¥¤¥Þ¥ê¥â¥Ë¥¿¤Ç¤Ê¤±¤ì¤Ð0޲޶ŽÞ޲
disp_end_no=disp_no;
disp_no++;
}
return 0;
}
/*
int disp::disp_chang(int width_x,int height_y,int perpel, int frequency_hz){
static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
HDC hdc; // ¸½ºß¤Î¿§²òÁüÅÙ¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥Ç¥Ð¥¤¥¹¥³¥ó¥Æ¥¥¹¥È
hdc = GetDC(NULL); // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂΤò½é´ü²½¤¹¤ë
ZeroMemory(&dispmode,sizeof(dispmode));
dispmode.dmSize = sizeof(dispmode);
dispmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
dispmode.dmBitsPerPel = GetDeviceCaps(hdc,BITSPIXEL);
dispmode.dmPelsWidth = width_x; // ²òÁüÅÙ²£¥µ¥¤¥º¡Êwidth x¡Ë
dispmode.dmPelsHeight =height_y; // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
dispmode.dmBitsPerPel=perpel; // £±¥Ô¥¯¥»¥ëÅö¤¿¤ê¤Î¥Ó¥Ã¥È¿ô
dispmode.dmDisplayFrequency =frequency_hz; // ¥ê¥Õ¥ì¥Ã¥·¥å¼þÇÈ¿ô
ReleaseDC(NULL,hdc);
// ¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤Î¥Á¥Ã¥¯¹ç³Ê¤Ê¤é²òÁüÅÙÊѹ¹¤ò¹Ô¤¦¡£
if( ChangeDisplaySettings(&dispmode,CDS_TEST) == DISP_CHANGE_SUCCESSFUL ) {
ChangeDisplaySettings(&dispmode,CDS_FULLSCREEN);
return 0;
}
return 1;
}*/
int disp::disp_chang(int width_x,int height_y,int perpel, int frequency_hz, DWORD iDevNum,int reg_w){
static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
//===========================-
DISPLAY_DEVICE dispDevice = {sizeof(dispDevice)}; //http://oshiete.goo.ne.jp/qa/4621536.html
DWORD dwFlags=NULL;
// DWORD iDevNum=0;
// if(!EnumDisplayDevices(NULL,iDevNum,&dispDevice,dwFlags) ){
if(!EnumDisplayDevices(0,iDevNum,&dispDevice,0) ){
// lpDisplayDevice.DeviceName;
MessageBox(NULL, TEXT("¥Ç¥£¥¹¥×¥ì¥¤¥Ç¥Ð¥¤¥¹¼èÆÀ¼ºÇÔ¤·¤Þ¤·¤¿"), TEXT(""), 0);
return 1;
}
else {// MessageBox(NULL, TEXT(dispDevice.DeviceName), TEXT(""), 0); //¥Ç¥£¥¹¥×¥ì¥¤¥Í¡¼¥à¤Î¥Á¥§¥Ã¥¯ÍÑ
}
//===========================-
HDC hdc; // ¸½ºß¤Î¿§²òÁüÅÙ¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥Ç¥Ð¥¤¥¹¥³¥ó¥Æ¥¥¹¥È
hdc = GetDC(NULL); // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂΤò½é´ü²½¤¹¤ë
ZeroMemory(&dispmode,sizeof(dispmode));
dispmode.dmSize = sizeof(dispmode);
dispmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
dispmode.dmBitsPerPel = GetDeviceCaps(hdc,BITSPIXEL); //ok
dispmode.dmPelsWidth = width_x; // ²òÁüÅÙ²£¥µ¥¤¥º¡Êwidth x¡Ëok
dispmode.dmPelsHeight =height_y; // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ëok
dispmode.dmBitsPerPel=perpel; // £±¥Ô¥¯¥»¥ëÅö¤¿¤ê¤Î¥Ó¥Ã¥È¿ô ok
dispmode.dmDisplayFrequency =frequency_hz; // ¥ê¥Õ¥ì¥Ã¥·¥å¼þÇÈ¿ô ok
// dispmode.dmPosition="0x20"; // Windows 98¡¢Windows 2000¡§¥Þ¥ë¥Á¥â¥Ë¥¿¹½À®¤Ç¤Î¥Ç¥Ð¥¤¥¹°ÌÃÖ &h20 DM_POSITION
ReleaseDC(NULL,hdc);
//³ÈÄ¥
// LPCSTR lpszDeviceName=NULL; //´û¸¤Î¥Ç¥£¥¹¥×¥ì¡¼ lpDisplayDevice->DeviceName
HWND hwnd=NULL;
LPVOID lParam=NULL;
// ¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤Î¥Á¥Ã¥¯¹ç³Ê¤Ê¤é²òÁüÅÙÊѹ¹¤ò¹Ô¤¦¡£
/*if( ChangeDisplaySettingsEx(lpszDeviceName,&dispmode,CDS_TEST,lParam) == DISP_CHANGE_SUCCESSFUL ) {
ChangeDisplaySettingsEx(lpszDeviceName,&dispmode,CDS_FULLSCREEN,lParam);*/
/*if( ChangeDisplaySettingsEx(lpDisplayDevice->DeviceName,&dispmode, hwnd,CDS_TEST,lParam) == DISP_CHANGE_SUCCESSFUL ) {
ChangeDisplaySettingsEx(lpDisplayDevice->DeviceName,&dispmode, hwnd,CDS_FULLSCREEN,lParam);*/
/*if( ChangeDisplaySettingsEx(NULL,&dispmode, hwnd,CDS_TEST,lParam) == DISP_CHANGE_SUCCESSFUL ) { //¸½ºß¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ
ChangeDisplaySettingsEx(NULL,&dispmode, hwnd,CDS_FULLSCREEN,lParam);//¸½ºß¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ*/
if(reg_w==1){
if( ChangeDisplaySettingsEx(dispDevice.DeviceName,&dispmode, hwnd,CDS_TEST,lParam) == DISP_CHANGE_SUCCESSFUL ){ //lpszDeviceName¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ
ChangeDisplaySettingsEx(dispDevice.DeviceName,&dispmode, hwnd,CDS_UPDATEREGISTRY,lParam);//lpszDeviceName¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤ÆCDS_UPDATEREGISTRY ÀßÄêÊѹ¹¤ò¹Ô¤¤¡¢¾ðÊó¤ò¥ì¥¸¥¹¥È¥ê¤Ë½ñ¤¹þ¤à¡£
return 0; }
}else{
if( ChangeDisplaySettingsEx(dispDevice.DeviceName,&dispmode, hwnd,CDS_TEST,lParam) == DISP_CHANGE_SUCCESSFUL ) { //lpszDeviceName¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ
ChangeDisplaySettingsEx(dispDevice.DeviceName,&dispmode, hwnd,CDS_FULLSCREEN,lParam);//lpszDeviceName¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ CDS_FULLSCREEN °ì»þŪ¤ËÀÚ¤êÂØ¤¨¤ë¡£¥¢¥×¥ê¥±¡¼¥·¥ç¥ó½ªÎ»¸å¡¢¸µ¤Î¾õÂÖ¤ËÌᤵ¤ì¤ë
return 0; }
} //end else
return 1;
}
//http://msdn.microsoft.com/ja-jp/library/cc428310.aspx
//http://msdn.microsoft.com/ja-jp/library/cc428309.aspx
//http://tokovalue.web.infoseek.co.jp/function/ChangeDisplaySettingsEx.htm
//http://msdn.microsoft.com/en-us/library/dd183411(v=vs.85).aspx
void disp::disp_old(void){
static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
HDC hdc; // ¸½ºß¤Î¿§²òÁüÅÙ¤ò¼èÆÀ¤¹¤ë¤¿¤á¤Î¥Ç¥Ð¥¤¥¹¥³¥ó¥Æ¥¥¹¥È
hdc = GetDC(NULL); // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂΤò½é´ü²½¤¹¤ë
ZeroMemory(&dispmode,sizeof(dispmode));
dispmode.dmSize = sizeof(dispmode);
dispmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
dispmode.dmBitsPerPel = GetDeviceCaps(hdc,BITSPIXEL);
dispmode.dmPelsWidth = old_x_data; // ²òÁüÅÙ²£¥µ¥¤¥º¡Êwidth x¡Ë
dispmode.dmPelsHeight =old_y_data; // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
dispmode.dmBitsPerPel=old_perpel; // £±¥Ô¥¯¥»¥ëÅö¤¿¤ê¤Î¥Ó¥Ã¥È¿ô
dispmode.dmDisplayFrequency =old_hz; // ¥ê¥Õ¥ì¥Ã¥·¥å¼þÇÈ¿ô
ReleaseDC(NULL,hdc);
HWND hwnd=NULL;
LPVOID lParam=NULL;
// ¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤Î¥Á¥Ã¥¯¹ç³Ê¤Ê¤é²òÁüÅÙÊѹ¹¤ò¹Ô¤¦¡£
//if( ChangeDisplaySettings(&dispmode,CDS_TEST) == DISP_CHANGE_SUCCESSFUL ) {
// ChangeDisplaySettings(&dispmode,CDS_FULLSCREEN);}
if( ChangeDisplaySettingsEx(NULL,&dispmode, hwnd,CDS_TEST,lParam) == DISP_CHANGE_SUCCESSFUL ) { //¸½ºß¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ
ChangeDisplaySettingsEx(NULL,&dispmode, hwnd,CDS_FULLSCREEN,lParam);}//¸½ºß¤Î¥Ç¥£¥¹¥×¥ì¡¼¤ËÂФ·¤Æ
}
Form1.h¤ÎÆþÎÏ
#pragma once
using namespace System::Diagnostics;
using namespace msclr::interop; // msclr
#include "d_data.h"
#include "disp.h"
#include "shortcut.h"
namespace disp32form1 {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Form1 ¤Î³µÍ×
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
// Form1(void)
array<System::String ^> ^Args_data;
Form1(array<System::String ^> ^args)//voi¤òÊѹ¹
{
InitializeComponent();
//
//TODO: ¤³¤³¤Ë¥³¥ó¥¹¥È¥é¥¯¥¿¡¼ ¥³¡¼¥É¤òÄɲä·¤Þ¤¹
Args_data = args; // ÄɲÃ
//EnableWindow(ListView_GetHeader(reinterpret_cast(this->listView1->Handle.ToInt32())),FALSE);
//
}
protected:
/// <summary>
/// »ÈÍÑÃæ¤Î¥ê¥½¡¼¥¹¤ò¤¹¤Ù¤Æ¥¯¥ê¡¼¥ó¥¢¥Ã¥×¤·¤Þ¤¹¡£
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private: System::Windows::Forms::ListBox^ listBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private:
/// <summary>
/// ɬÍפʥǥ¶¥¤¥Ê¡¼ÊÑ¿ô¤Ç¤¹¡£
/// </summary>
System::ComponentModel::Container ^components;
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox4;
private: System::Windows::Forms::TextBox^ textBox6;
private: System::Windows::Forms::TextBox^ textBox5;
private: System::Windows::Forms::Button^ button3;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::Label^ label5;
private: System::Windows::Forms::TextBox^ textBox7;
private: System::Windows::Forms::TextBox^ textBox8;
private: System::Windows::Forms::TextBox^ textBox9;
private: System::Windows::Forms::TextBox^ textBox10;
private: System::Windows::Forms::Label^ label6;
private: System::Windows::Forms::Button^ button4;
private: System::Windows::Forms::Label^ label7;
private: System::Windows::Forms::TextBox^ textBox11;
private: System::Windows::Forms::Label^ label8;
private: System::Windows::Forms::TextBox^ textBox12;
private: System::Windows::Forms::Label^ label9;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Button^ button5;
//============================================================-
static disp m_disp;
static shortcut shc;
// static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ º®¹ç·¿¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó
//============================================================-
#pragma region Windows Form Designer generated code
/// <summary>
/// ¥Ç¥¶¥¤¥Ê¡¼ ¥µ¥Ý¡¼¥È¤ËɬÍפʥ᥽¥Ã¥É¤Ç¤¹¡£¤³¤Î¥á¥½¥Ã¥É¤ÎÆâÍÆ¤ò
/// ¥³¡¼¥É ¥¨¥Ç¥£¥¿¡¼¤ÇÊѹ¹¤·¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->listBox1 = (gcnew System::Windows::Forms::ListBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox3 = (gcnew System::Windows::Forms::TextBox());
this->textBox4 = (gcnew System::Windows::Forms::TextBox());
this->textBox5 = (gcnew System::Windows::Forms::TextBox());
this->textBox6 = (gcnew System::Windows::Forms::TextBox());
this->button3 = (gcnew System::Windows::Forms::Button());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->label3 = (gcnew System::Windows::Forms::Label());
this->label4 = (gcnew System::Windows::Forms::Label());
this->label5 = (gcnew System::Windows::Forms::Label());
this->textBox7 = (gcnew System::Windows::Forms::TextBox());
this->textBox8 = (gcnew System::Windows::Forms::TextBox());
this->textBox9 = (gcnew System::Windows::Forms::TextBox());
this->textBox10 = (gcnew System::Windows::Forms::TextBox());
this->label6 = (gcnew System::Windows::Forms::Label());
this->button4 = (gcnew System::Windows::Forms::Button());
this->label7 = (gcnew System::Windows::Forms::Label());
this->textBox11 = (gcnew System::Windows::Forms::TextBox());
this->label8 = (gcnew System::Windows::Forms::Label());
this->textBox12 = (gcnew System::Windows::Forms::TextBox());
this->label9 = (gcnew System::Windows::Forms::Label());
this->button2 = (gcnew System::Windows::Forms::Button());
this->button5 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// button1
//
this->button1->BackColor = System::Drawing::Color::DeepPink;
this->button1->Location = System::Drawing::Point(83, 1);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(82, 23);
this->button1->TabIndex = 0;
this->button1->Text = L"Êѹ¹";
this->button1->UseVisualStyleBackColor = false;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// listBox1
//
this->listBox1->FormattingEnabled = true;
this->listBox1->ItemHeight = 12;
this->listBox1->Location = System::Drawing::Point(12, 115);
this->listBox1->Name = L"listBox1";
this->listBox1->Size = System::Drawing::Size(523, 352);
this->listBox1->TabIndex = 2;
this->listBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::listBox1_SelectedIndexChanged);
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(171, 3);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(193, 19);
this->textBox2->TabIndex = 5;
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(48, 61);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(47, 19);
this->textBox1->TabIndex = 6;
//
// textBox3
//
this->textBox3->Location = System::Drawing::Point(152, 59);
this->textBox3->Name = L"textBox3";
this->textBox3->Size = System::Drawing::Size(78, 19);
this->textBox3->TabIndex = 7;
//
// textBox4
//
this->textBox4->Location = System::Drawing::Point(255, 61);
this->textBox4->Name = L"textBox4";
this->textBox4->Size = System::Drawing::Size(69, 19);
this->textBox4->TabIndex = 8;
//
// textBox5
//
this->textBox5->Location = System::Drawing::Point(353, 61);
this->textBox5->Name = L"textBox5";
this->textBox5->Size = System::Drawing::Size(48, 19);
this->textBox5->TabIndex = 9;
//
// textBox6
//
this->textBox6->Location = System::Drawing::Point(467, 63);
this->textBox6->Name = L"textBox6";
this->textBox6->Size = System::Drawing::Size(68, 19);
this->textBox6->TabIndex = 10;
//
// button3
//
this->button3->BackColor = System::Drawing::Color::Chartreuse;
this->button3->Location = System::Drawing::Point(2, 1);
this->button3->Name = L"button3";
this->button3->Size = System::Drawing::Size(75, 23);
this->button3->TabIndex = 11;
this->button3->Text = L"¸µ¤ËÌ᤹";
this->button3->UseVisualStyleBackColor = false;
this->button3->Click += gcnew System::EventHandler(this, &Form1::button3_Click);
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(23, 63);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(19, 12);
this->label1->TabIndex = 12;
this->label1->Text = L"No";
//
// label2
//
this->label2->AutoSize = true;
this->label2->Location = System::Drawing::Point(129, 65);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(17, 12);
this->label2->TabIndex = 13;
this->label2->Text = L"²£";
//
// label3
//
this->label3->AutoSize = true;
this->label3->Location = System::Drawing::Point(232, 63);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(17, 12);
this->label3->TabIndex = 14;
this->label3->Text = L"½Ä";
//
// label4
//
this->label4->AutoSize = true;
this->label4->Location = System::Drawing::Point(330, 65);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(17, 12);
this->label4->TabIndex = 15;
this->label4->Text = L"¿§";
//
// label5
//
this->label5->AutoSize = true;
this->label5->Location = System::Drawing::Point(407, 65);
this->label5->Name = L"label5";
this->label5->Size = System::Drawing::Size(54, 12);
this->label5->TabIndex = 16;
this->label5->Text = L"¥ê¥Õ¥ì¥Ã¥·¥å";
//
// textBox7
//
this->textBox7->Location = System::Drawing::Point(152, 93);
this->textBox7->Name = L"textBox7";
this->textBox7->Size = System::Drawing::Size(78, 19);
this->textBox7->TabIndex = 17;
//
// textBox8
//
this->textBox8->Location = System::Drawing::Point(255, 93);
this->textBox8->Name = L"textBox8";
this->textBox8->Size = System::Drawing::Size(69, 19);
this->textBox8->TabIndex = 18;
//
// textBox9
//
this->textBox9->Location = System::Drawing::Point(353, 90);
this->textBox9->Name = L"textBox9";
this->textBox9->Size = System::Drawing::Size(48, 19);
this->textBox9->TabIndex = 19;
//
// textBox10
//
this->textBox10->Location = System::Drawing::Point(467, 90);
this->textBox10->Name = L"textBox10";
this->textBox10->Size = System::Drawing::Size(67, 19);
this->textBox10->TabIndex = 20;
//
// label6
//
this->label6->AutoSize = true;
this->label6->Location = System::Drawing::Point(117, 96);
this->label6->Name = L"label6";
this->label6->Size = System::Drawing::Size(29, 12);
this->label6->TabIndex = 21;
this->label6->Text = L"°ú¿ô";
//
// button4
//
this->button4->BackColor = System::Drawing::Color::MediumPurple;
this->button4->Location = System::Drawing::Point(2, 24);
this->button4->Name = L"button4";
this->button4->Size = System::Drawing::Size(163, 27);
this->button4->TabIndex = 22;
this->button4->Text = L"¥Ç¥£¥¹¥¯¥È¥Ã¥×¤Ë¥·¥ç¡¼¥È¥«¥Ã¥È¤òºî¤ë";
this->button4->UseVisualStyleBackColor = false;
this->button4->Click += gcnew System::EventHandler(this, &Form1::button4_Click);
//
// label7
//
this->label7->AutoSize = true;
this->label7->Location = System::Drawing::Point(389, 29);
this->label7->Name = L"label7";
this->label7->Size = System::Drawing::Size(74, 12);
this->label7->TabIndex = 23;
this->label7->Text = L"¥Ç¥£¥¹¥×¥ì¥¤£Î£ï";
//
// textBox11
//
this->textBox11->Location = System::Drawing::Point(470, 28);
this->textBox11->Name = L"textBox11";
this->textBox11->Size = System::Drawing::Size(46, 19);
this->textBox11->TabIndex = 26;
this->textBox11->TextChanged += gcnew System::EventHandler(this, &Form1::textBox11_TextChanged);
//
// label8
//
this->label8->AutoSize = true;
this->label8->Location = System::Drawing::Point(311, 46);
this->label8->Name = L"label8";
this->label8->Size = System::Drawing::Size(167, 12);
this->label8->TabIndex = 25;
this->label8->Text = L"¥×¥é¥¤¥Þ¥ê¡¼£°¡¡¥»¥«¥ó¥À¥ê¡¼£±£²£³¡¥¡¥";
//
// textBox12
//
this->textBox12->Location = System::Drawing::Point(278, 24);
this->textBox12->Name = L"textBox12";
this->textBox12->Size = System::Drawing::Size(102, 19);
this->textBox12->TabIndex = 27;
//
// label9
//
this->label9->AutoSize = true;
this->label9->Location = System::Drawing::Point(169, 31);
this->label9->Name = L"label9";
this->label9->Size = System::Drawing::Size(103, 12);
this->label9->TabIndex = 28;
this->label9->Text = L"¸½ºß¤Î¥Ç¥£¥¹¥×¥ì¡¼¤Ï";
//
// button2
//
this->button2->Location = System::Drawing::Point(381, 1);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(145, 23);
this->button2->TabIndex = 29;
this->button2->Text = L"¥Ç¥£¥¹¥×¥ì¥¤£Î£ïÊѹ¹";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click_1);
//
// button5
//
this->button5->BackColor = System::Drawing::Color::Crimson;
this->button5->Location = System::Drawing::Point(9, 87);
this->button5->Name = L"button5";
this->button5->Size = System::Drawing::Size(102, 25);
this->button5->TabIndex = 30;
this->button5->Text = L"¥ì¥¸¥¹¥È¥ê½ñ¤¹þ¤ß";
this->button5->UseVisualStyleBackColor = false;
this->button5->Click += gcnew System::EventHandler(this, &Form1::button5_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackColor = System::Drawing::Color::Plum;
this->ClientSize = System::Drawing::Size(550, 479);
this->Controls->Add(this->button5);
this->Controls->Add(this->button2);
this->Controls->Add(this->label9);
this->Controls->Add(this->textBox12);
this->Controls->Add(this->textBox11);
this->Controls->Add(this->label8);
this->Controls->Add(this->label7);
this->Controls->Add(this->button4);
this->Controls->Add(this->label6);
this->Controls->Add(this->textBox10);
this->Controls->Add(this->textBox9);
this->Controls->Add(this->textBox8);
this->Controls->Add(this->textBox7);
this->Controls->Add(this->label5);
this->Controls->Add(this->label4);
this->Controls->Add(this->label3);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->button3);
this->Controls->Add(this->textBox6);
this->Controls->Add(this->textBox5);
this->Controls->Add(this->textBox4);
this->Controls->Add(this->textBox3);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->listBox1);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"²èÌ̲òÁüÅÙÊѹ¹";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
// disp m_disp;
int width_x = int::Parse(textBox3->Text); // ²òÁüÅÙ²£¥µ¥¤¥º¡Êwidth x¡Ë
int height_y =int::Parse(textBox4->Text); // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
int perpel =int::Parse(textBox5->Text); // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
int frequency_hz =int::Parse(textBox6->Text); // ¥ê¥Õ¥ì¥Ã¥·¥å¼þÇÈ¿ô
DWORD prm_sec_no=DWORD::Parse(textBox11->Text);
//==========
String^ text;
text=textBox3->Text+" "+textBox4->Text+" "+textBox5->Text+" "+textBox6->Text;
int flag=0;
int disp_no;
for(disp_no=0;disp_no<=m_disp.disp_end_no;disp_no++){
//¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤¬²òÁüÅÙ¤ÈŬ¹ç¤·¤Æ¤¤¤ë¤«¤Î¥Á¥§¥Ã¥¯
if( m_disp.disp_data[disp_no]->x_data== width_x &&
m_disp.disp_data[disp_no]->y_data== height_y &&
m_disp.disp_data[disp_no]->perpel== perpel &&
m_disp.disp_data[disp_no]->hz==frequency_hz) flag=1;
}//next
//==========-
int y;
if(flag==1){
y=m_disp.disp_chang( width_x, height_y, perpel, frequency_hz, prm_sec_no,0);
if(y==1) MessageBox::Show("²òÁüÅÙÊѹ¹¼ºÇÔ");
} else{
if (MessageBox::Show(text+"Âбþ¤·¤Æ¤¤¤Ê¤¤²òÁüÅ٤Ǥ¹¡£¶¯À©Êѹ¹¤·¤Æ¤ß¤Þ¤¹¤«?", "³Îǧ", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
y=m_disp.disp_chang( width_x, height_y, perpel, frequency_hz, prm_sec_no,0);
if(y==1) MessageBox::Show("²òÁüÅÙÊѹ¹¼ºÇÔ");
}
}//end else
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
//¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤Î°ú¤ÅϤ· ²£¡¡½Ä¡¡¿§¡¡¥ê¥Õ¥ì¥Ã¥·¥å¡¡Î㣱£°£²£¸¡¡£·£¶£¸¡¡£³£²¡¡£¶£°
int h_data0;
int h_data1;
int h_data2;
int h_data3;
int h_data4;
/*======================================
if(0 < CommandLineArgs->Length)
{ System::Diagnostics::Debug::WriteLine("°ú¿ô¤Î¸Ä¿ô = " + CommandLineArgs->Length);
for(int i = 0;i < CommandLineArgs->Length;i++)System::Diagnostics::Debug::WriteLine("No." + i + " = " + CommandLineArgs[i]);
}else
{ CommandLineArgs = gcnew array<String ^>(2);
CommandLineArgs[0] = "";
}
{ MessageBox::Show("°ú¿ô¤Î¸Ä¿ô = " + CommandLineArgs->Length);
for(int i = 0;i < CommandLineArgs->Length;i++) MessageBox::Show("No." + i + " = " + CommandLineArgs[i]);
}else
{ CommandLineArgs = gcnew array<String ^>(2);
CommandLineArgs[0] = "";
}
//==========================*/
if(Args_data->Length==5){
h_data0=int::Parse(Args_data[0]);
h_data1=int::Parse(Args_data[1]);
h_data2=int::Parse(Args_data[2]);
h_data3=int::Parse(Args_data[3]);
h_data4=int::Parse(Args_data[4]);
}else{ Args_data = gcnew array<String ^>(2);
Args_data[0] = "";
h_data0=0;
}
if( h_data1>1900*2 || h_data2>1200*2 || h_data3>32 || h_data4>240) { //1900*2 1200*2 °Ê¾å¤Ï¥¨¥é¡¼¤È¤¹¤ë
h_data0=0;
h_data1=0;
h_data2=0;
h_data3=0;
h_data4=0;
}
//¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤Î°ú¤ÅϤ·½ª¤ï¤ê
//disp m_disp;
//¸½ºß¤Î¥â¡¼¥É
textBox3->Text=m_disp.old_x_data.ToString();
textBox4->Text=m_disp.old_y_data.ToString();
textBox5->Text=m_disp.old_perpel.ToString();
textBox6->Text=m_disp.old_hz.ToString();
//°ú¿ô
textBox7->Text=h_data1.ToString();
textBox8->Text=h_data2.ToString();
textBox9->Text=h_data3.ToString();
textBox10->Text=h_data4.ToString();
textBox11->Text=h_data0.ToString();
//static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
//»ÈÍѤǤ¤ë¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤Î³Îǧ
DWORD prm_sec_no=DWORD::Parse(textBox11->Text);
int yet;
//¥ì¥¸¥¹¥È¥ê¤è¤êÌ᤻¤ë¥Ç¡¼¥¿¤òÆÉ¤à
yet=m_disp.disp_no(prm_sec_no);
if(yet>0) MessageBox::Show("¥ì¥¸¥¹¥È¥êÆÉ¤ß¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");
yet=m_disp.disp_use(prm_sec_no);
if(yet>0) MessageBox::Show("²òÁüÅÙ¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");
String^ text;
text="";
int disp_no=0;
if(m_disp.pr_sec_flag==0) textBox12->Text="¥×¥é¥¤¥Þ¥ê¡¼";
else textBox12->Text="¥»¥«¥ó¥À¥ê";
/*-------------------
richTextBox1->SaveFile("C:\\dispmode.rtf");¡¡Êݸ¤¹¤ë¾ì¹ç
richTextBox1->LoadFile("C:\\dispmode.rtf");
-------------------*/
// »ÈÍѤǤ¤ë¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤ò¥ê¥¹¥È¥Ü¥Ã¥¯¥¹¤Ëɽ¼¨
int flag=0;
if(h_data0==0 && h_data1==0 && h_data2==0 && h_data3==0 && h_data4==0) flag=-1;
int y;
//while( TRUE )
// while(m_disp.disp_data[disp_no]->no = -1)
for(disp_no=0;disp_no<=m_disp.disp_end_no;disp_no++)
{
//Á´¥â¡¼¥É¤ÎÎóµó
//if( m_disp.disp_data[disp_no]->no==-1 ) break;
// ¥ê¥Ã¥Á¥Æ¥¥¹¥È¤Ëɽ¼¨¤¹¤ë
text=disp_no.ToString()+" "+m_disp.disp_data[disp_no]->x_data.ToString()+" "+m_disp.disp_data[disp_no]->y_data.ToString()+
" "+m_disp.disp_data[disp_no]->perpel.ToString()+" "+m_disp.disp_data[disp_no]->hz.ToString()+"\n";
listBox1->Items->Add(text);
//¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤¬²òÁüÅÙ¤ÈŬ¹ç¤·¤Æ¤¤¤ë¤«¤Î¥Á¥§¥Ã¥¯
if( m_disp.disp_data[disp_no]->x_data==h_data1 &&
m_disp.disp_data[disp_no]->y_data==h_data2 &&
m_disp.disp_data[disp_no]->perpel==h_data3 &&
m_disp.disp_data[disp_no]->hz==h_data4) flag=1;
// disp_no++;
}
//textBox1->Text=flag.ToString();
//¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤Î°ú¤ÅϤ·¤¬¤¢¤Ã¤¿¤È¤¤Î½èÍý
if(flag==1){
y=m_disp.disp_chang( h_data1,h_data2,h_data3,h_data4,prm_sec_no,0); //¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤Ç²òÁüÅÙÊѹ¹
this->WindowState = FormWindowState::Minimized; //¸½ºß¤Î¥Õ¥©¡¼¥à¤òºÇ¾®²½
MessageBox::Show("¸½ºß¤Î¥Õ¥©¡¼¥à¤òºÇ¾®²½¤·¤Þ¤·¤¿¡£");
}
else {
if(flag !=-1){
text= h_data0.ToString()+" "+h_data1.ToString()+" "+h_data2.ToString()+" "+h_data3.ToString()+" ";
if (MessageBox::Show(text+"Âбþ¤·¤Æ¤¤¤Ê¤¤²òÁüÅ٤Ǥ¹¡£¶¯À©Êѹ¹¤·¤Æ¤ß¤Þ¤¹¤«?", "³Îǧ", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
y=m_disp.disp_chang( h_data1,h_data2,h_data3,h_data4,prm_sec_no,0);
}
}
}
if(y==1) MessageBox::Show("²òÁüÅÙÊѹ¹¼ºÇÔ");
/*
¸½ºß¤Î¥Õ¥©¡¼¥à¤òºÇ¾®²½
this->WindowState = FormWindowState::Minimized;
¸½ºß¤Î¥Õ¥©¡¼¥à¤òºÇÂç²½
this->WindowState = FormWindowState::Maximized;
¸½ºß¤Î¥Õ¥©¡¼¥à¤òºÇ¾®²½¡¢¤¢¤ë¤¤¤ÏºÇÂç²½¤«¤é¸µ¤ËÌ᤹
this->WindowState = FormWindowState::Normal;
¸½ºß¤Î¥Õ¥©¡¼¥à¤òÈóɽ¼¨
this->Hide();
¸½ºß¤Î¥Õ¥©¡¼¥à¤òÈóɽ¼¨¤«¤éɽ¼¨
this->Show();
*/
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
// disp m_disp;
int s_no=0;
textBox2->Text=listBox1->Text;
textBox1->Text=listBox1->SelectedIndex.ToString();
s_no=listBox1->SelectedIndex;
textBox3->Text=m_disp.disp_data[s_no]->x_data.ToString();
textBox4->Text=m_disp.disp_data[s_no]->y_data.ToString();
textBox5->Text=m_disp.disp_data[s_no]->perpel.ToString();
textBox6->Text=m_disp.disp_data[s_no]->hz.ToString();
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
m_disp.disp_old();
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
//http://code.msdn.microsoft.com/VisualC-7c6bc862
//http://yokohama.cool.ne.jp/chokuto/urawaza/com/shell.html
//http://minidx.blogspot.com/2007/03/vc_14.html ʸ»ú¥Ë¥Ä¥¤¥Æ
//http://fatalita.sakura.ne.jp/Junk/_T/index.html
//const TCHAR * text = _T("ʸ»úÎó"); ¤È LPCTSTR text = _T("ʸ»úÎó"); ¤ÏƱ¤¸°ÕÌ£¤Ç¤¹¡£
//http://ysmt.blog21.fc2.com/blog-entry-244.html
//http://support.microsoft.com/kb/311259/ja
//http://codezine.jp/article/detail/4774
shortcut stc;
int ret;
String^ option1;
String^ option2;
option1= textBox11->Text + " "+textBox3->Text + " "+ textBox4->Text + " " + textBox5->Text + " " + textBox6->Text;
option2="\\resolution_change "+option1+".lnk";
MessageBox::Show(option1+"²òÁüÅ٤νàÈ÷¤ò¤·¤Þ¤¹");
//LPTSTR pszStr; //exeample ="1024 768 32 60";
const char* pszStr1;
marshal_context ctx1;
pszStr1 = ctx1.marshal_as<const char*>(option1);
const char* pszStr2;
marshal_context ctx2;
pszStr2 = ctx2.marshal_as<const char*>(option2);
// s2 = ctx.marshal_as<const wchar_t*>(s0);
ret=stc.Stcut(pszStr1,pszStr2);
if(ret) MessageBox::Show("¥Ç¥¹¥¯¥È¥Ã¥×¤Î¥·¥ç¡¼¥È¥«¥Ã¥È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤");
}
private: System::Void listBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {
// disp m_disp;
int s_no=0;
textBox2->Text=listBox1->Text;
textBox1->Text=listBox1->SelectedIndex.ToString();
s_no=listBox1->SelectedIndex;
textBox3->Text=m_disp.disp_data[s_no]->x_data.ToString();
textBox4->Text=m_disp.disp_data[s_no]->y_data.ToString();
textBox5->Text=m_disp.disp_data[s_no]->perpel.ToString();
textBox6->Text=m_disp.disp_data[s_no]->hz.ToString();
}
private: System::Void textBox11_TextChanged(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void button2_Click_1(System::Object^ sender, System::EventArgs^ e) {
//static DEVMODE dispmode; // ¥Ç¥Ð¥¤¥¹¹½Â¤ÂÎ
int yet;
DWORD prm_sec_no;
prm_sec_no=DWORD::Parse(textBox11->Text);
yet=m_disp.disp_device(prm_sec_no);
if (yet==-1) {
textBox11->Text="0";
MessageBox::Show("¤³¤ÎNo¤Î¥Ç¥£¥¹¥×¥ì¡¼¤Ï¸ºß¤·¤Þ¤»¤ó"); }
prm_sec_no=DWORD::Parse(textBox11->Text);
//¥ì¥¸¥¹¥È¥ê¤è¤êÌ᤻¤ë¥Ç¡¼¥¿¤òÆÉ¤à
yet=m_disp.disp_no(prm_sec_no);
if(yet>0) MessageBox::Show("¥ì¥¸¥¹¥È¥êÆÉ¤ß¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");
//»ÈÍѤǤ¤ë¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤Î³Îǧ
yet=m_disp.disp_use(prm_sec_no);
if(yet>0) MessageBox::Show("²òÁüÅÙ¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£");
String^ text;
text="";
if(m_disp.pr_sec_flag==0) textBox12->Text="¥×¥é¥¤¥Þ¥ê¡¼";
else textBox12->Text="¥»¥«¥ó¥À¥ê";
// »ÈÍѤǤ¤ë¥Ç¥£¥¹¥×¥ì¥¤¥â¡¼¥É¤ò¥ê¥¹¥È¥Ü¥Ã¥¯¥¹¤Ëɽ¼¨
listBox1->Items->Clear();
for(int disp_no=0;disp_no<=m_disp.disp_end_no;disp_no++){
//Á´¥â¡¼¥É¤ÎÎóµó
// ¥ê¥Ã¥Á¥Æ¥¥¹¥È¤Ëɽ¼¨¤¹¤ë
text=disp_no.ToString()+" "+m_disp.disp_data[disp_no]->x_data.ToString()+" "+m_disp.disp_data[disp_no]->y_data.ToString()+
" "+m_disp.disp_data[disp_no]->perpel.ToString()+" "+m_disp.disp_data[disp_no]->hz.ToString()+"\n";
listBox1->Items->Add(text);
}
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
// disp m_disp;
if(MessageBox::Show("²òÁüÅÙÊѹ¹¸å¡¡¥ì¥¸¥¹¥È¥ê¤Ë½ñ¤¹þ¤ß¤ò¹Ô¤¤¤Þ¤¹¤«¡©","¥ì¥¸¥¹¥È¥ê¤Ë½ñ¤¹þ¤ß´í¸±",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
// disp m_disp;
int width_x = int::Parse(textBox3->Text); // ²òÁüÅÙ²£¥µ¥¤¥º¡Êwidth x¡Ë
int height_y =int::Parse(textBox4->Text); // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
int perpel =int::Parse(textBox5->Text); // ²òÁüÅٽĥµ¥¤¥º¡Êhight y¡Ë
int frequency_hz =int::Parse(textBox6->Text); // ¥ê¥Õ¥ì¥Ã¥·¥å¼þÇÈ¿ô
DWORD prm_sec_no=DWORD::Parse(textBox11->Text);
//==========
String^ text;
text=textBox3->Text+" "+textBox4->Text+" "+textBox5->Text+" "+textBox6->Text;
int disp_no;
int flag=0;
for(disp_no=0;disp_no<=m_disp.disp_end_no;disp_no++){
//¥Õ¥©¡¼¥à¤Ø¤Î°ú¿ô¤¬²òÁüÅÙ¤ÈŬ¹ç¤·¤Æ¤¤¤ë¤«¤Î¥Á¥§¥Ã¥¯
if( m_disp.disp_data[disp_no]->x_data== width_x &&
m_disp.disp_data[disp_no]->y_data== height_y &&
m_disp.disp_data[disp_no]->perpel== perpel &&
m_disp.disp_data[disp_no]->hz==frequency_hz) flag=1;
} //next
//==========-
int y;
if(flag==1){ y=m_disp.disp_chang( width_x, height_y, perpel, frequency_hz, prm_sec_no,1);
if(y==1) MessageBox::Show("²òÁüÅÙÊѹ¹¼ºÇÔ");
} else{ if (MessageBox::Show(text+"Âбþ¤·¤Æ¤¤¤Ê¤¤²òÁüÅ٤Ǥ¹¡£¶¯À©Êѹ¹¤·¤Æ¤ß¤Þ¤¹¤«?", "³Îǧ", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
y=m_disp.disp_chang( width_x, height_y, perpel, frequency_hz, prm_sec_no,1);
if(y==1) MessageBox::Show("²òÁüÅÙÊѹ¹¼ºÇÔ");
} //end if MB
}
} //end button5
}
};
}