16,471
社区成员
发帖
与我相关
我的任务
分享
// 标准的32位程序模板.cpp : Defines the entry point for the application.
//
// 滚动条设计.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include <TCHAR.H>
#include <stdio.h>
#include "resource.h"
HWND hDlgModeless;
TCHAR* AppName = TEXT("MyWin");
LRESULT CALLBACK myWndproc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
bool CALLBACK ColorScrDlg(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
WNDCLASSEX wndclassex;
wndclassex.cbClsExtra = 0;
wndclassex.cbSize = sizeof(wndclassex);
wndclassex.cbWndExtra = 0;
wndclassex.hbrBackground = CreateSolidBrush(0L);
wndclassex.hCursor = NULL;
wndclassex.hIcon = NULL;
wndclassex.hIconSm = NULL;
wndclassex.hInstance = hInstance;
wndclassex.lpfnWndProc = myWndproc;
wndclassex.lpszClassName = AppName;
wndclassex.lpszMenuName = NULL;
wndclassex.style = CS_VREDRAW | CS_HREDRAW;
if(!RegisterClassEx(&wndclassex))
{
MessageBox(NULL,TEXT("RegisterClassEx Fails"),TEXT("Warning"),0);
}
HWND hWnd = CreateWindow(AppName,TEXT("Mywindow"),WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
hDlgModeless = CreateDialog(hInstance,MAKEINTRESOURCE(COLORSCRDLG),hWnd,(DLGPROC)ColorScrDlg);
MSG uMsg;
while(GetMessage(&uMsg,NULL,0,0))
{
if(hDlgModeless == 0 || !IsDialogMessage(hDlgModeless,&uMsg))
{
TranslateMessage(&uMsg);
DispatchMessage(&uMsg);
}
}
return 0;
}
LRESULT CALLBACK myWndproc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
int wId,wEvent;//WM_COMMAND的控件ID和通知码
static HINSTANCE hInstance;
switch(uMsg)
{
case WM_CREATE:
// hInstance = ((LPCREATESTRUCT)lParam)->hInstance;
// hDlgModeless = CreateDialog(hInstance,TEXT("ColorScrDlg"),hwnd,(DLGPROC)ColorScrDlg);
return 0;
case WM_DESTROY:
DeleteObject((HGDIOBJ)SetClassLong(hwnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(WHITE_BRUSH)));
PostQuitMessage(0);
return 0;
case WM_CLOSE:
DestroyWindow(hwnd);
return 0;
case WM_PAINT:
return 0;
case WM_SIZE:
return 0;
case WM_VSCROLL:
return 0;
case WM_COMMAND:
wId = LOWORD(wParam);
wEvent = HIWORD(wParam);
return 0;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
bool CALLBACK ColorScrDlg(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
static int iColor[3];
int* p = iColor;
HWND hwndParent,hCtrl;
int iCtrlID,iIndex;
switch(uMsg)
{
case WM_INITDIALOG:
for(iCtrlID = 10;iCtrlID < 13;iCtrlID++)
{
hCtrl = GetDlgItem(hwnd,iCtrlID);
SetScrollRange(hCtrl,SB_CTL,0,255,false);
SetScrollPos(hCtrl,SB_CTL,0,false);
}
return true;
case WM_SYSCOMMAND:
switch(wParam)
{
case SC_CLOSE://关闭对话框
DestroyWindow(hwnd);
break;
}
return true;
case WM_VSCROLL:
hCtrl = (HWND)lParam;
iCtrlID = GetWindowLong(hCtrl,GWL_ID);
iIndex = iCtrlID - 10;
hwndParent = GetParent(hwnd);
switch(LOWORD(wParam))
{
case SB_PAGEDOWN:
iColor[iIndex] = min(iColor[iIndex] + 15,255);
break;
case SB_PAGEUP:
iColor[iIndex] = max(iColor[iIndex] - 15,0);
break;
case SB_LINEUP:
iColor[iIndex] = max(iColor[iIndex] - 1,0);
break;
case SB_LINEDOWN:
iColor[iIndex] = min(iColor[iIndex] + 1,255);
break;
case SB_TOP:
iColor[iIndex] = 0;
break;
case SB_BOTTOM:
iColor[iIndex] = 255;
break;
case SB_THUMBPOSITION:
case SB_THUMBTRACK:
iColor[iIndex] = HIWORD(wParam);
break;
default:
return false;
}
SetScrollPos(hCtrl,SB_CTL,iColor[iIndex],true);
SetDlgItemInt(hwnd,iCtrlID + 3,iColor[iIndex],false);
DeleteObject((HGDIOBJ)SetClassLong(hwndParent,GCL_HBRBACKGROUND,(LONG)CreateSolidBrush(
RGB(iColor[0],
iColor[1],
iColor[2]))));
InvalidateRect(hwndParent,NULL,true);
//UpdateWindow(hwndParent);
return true;
}
return false;
}
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Chinese (中国) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
COLORSCRDLG DIALOG DISCARDABLE 32, 32, 162, 162
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 10, "System"
BEGIN
LTEXT "&Red",IDC_STATIC,29,16,14,8
LTEXT "&Green",IDC_STATIC,72,16,21,8
LTEXT "&Blue",IDC_STATIC,115,16,14,8
SCROLLBAR IDC_SCROLLBAR1,27,30,18,97,SBS_VERT
SCROLLBAR IDC_SCROLLBAR2,70,30,18,97,SBS_VERT
SCROLLBAR IDC_SCROLLBAR3,113,30,18,97,SBS_VERT
LTEXT "0",IDC_STATIC1,29,133,14,8
LTEXT "0",IDC_STATIC2,72,133,14,8
LTEXT "0",IDC_STATIC3,115,133,14,8
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
COLORSCRDLG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 155
TOPMARGIN, 7
BOTTOMMARGIN, 155
END
END
#endif // APSTUDIO_INVOKED
#endif // Chinese (中国) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
#define IDC_SCROLLBAR1 10
#define IDC_SCROLLBAR2 11
#define IDC_SCROLLBAR3 12
#define IDC_STATIC1 13
#define IDC_STATIC2 14
#define IDC_STATIC3 15
#define COLORSCRDLG 102
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 103
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1006
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif