minigui自定义控件。IP 时间日期
来源:互联网 发布:360免费送windows 10 编辑:程序博客网 时间:2024/05/18 01:51
留念下。
///////////////////////////////////////////////////IP 跟时间日期控件 由于3.0输入法原因,改版;
//////////////////////////////////////////////////////////////////////////////
///////////////////define IPControl
/////////////////////////////////////////////////////////////////////////////
//static int iAddr1,iAddr2,iAddr3,iAddr4;
//static int iCursor = 0;
//static WNDPROC old_spinbox_proc;
//static RECT rect;
//static RECT rcIP1,rcIP2,rcIP3,rcIP4;
//
///////计算鼠标点击在那个区域
//static int ParseClickRect(int x,int y)
//{
// if(x > rcIP1.left && x < rcIP1.right)
// {
// iCursor = 1;
// }
// else if(x > rcIP2.left && x < rcIP2.right)
// {
// iCursor = 2;
// }
// else if(x > rcIP3.left && x < rcIP3.right)
// {
// iCursor = 3;
// }
// else if(x > rcIP4.left && x < rcIP4.right)
// {
// iCursor = 4;
// }
// return iCursor;
//}
//static int DrawIPAdress(HDC hdc,HWND hwnd)
//{
// char buf[20];
// if(iCursor == 0 )
// {
//
// sprintf(buf,"%3d.%3d.%3d.%3d",iAddr1,iAddr2,iAddr3,iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
// }
// else if(iCursor == 1)
// {
// sprintf(buf,"%3d",iAddr1);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,20,10,buf);
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20 ;
// SetCaretPos(hwnd,x,10);
// sprintf(buf,".%3d.%3d.%3d",iAddr2,iAddr3,iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,10,buf);
// }
// else if(iCursor == 2)
// {
// sprintf(buf,"%3d.",iAddr1);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
//
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20;
// sprintf(buf,"%3d",iAddr2);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,10,buf);
// x += strlen(buf)*(GetSysCharWidth() + GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
//
// sprintf(buf,".%3d.%3d",iAddr3,iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,10,buf);
// }
// else if(iCursor == 3)
// {
// sprintf(buf,"%3d.%3d.",iAddr1,iAddr2);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
//
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20;
// sprintf(buf,"%3d",iAddr3);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,10,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
// sprintf(buf,".%3d",iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,10,buf);
//
// }
// else
// {
// sprintf(buf,"%3d.%3d.%3d.",iAddr1,iAddr2,iAddr3);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20 ;
// sprintf(buf,"%3d",iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,10,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
// }
// ShowCaret(hwnd);
//}
//
//static int BackSpaceValue(int num)
//{
// if(num > 1000)
// {
// int x = num/1000;
// int y = (num - x*1000)/100;
// int z = (num - x*1000 - y*100)/10;
// return x*100+y*10+z;
// }
// else if(num > 100)
// {
// int x = num/100;
// int y = (num - x*100)/10;
// return x*10+y;
// }
// else if(num >10)
// {
// int x = num/10;
// return x;
// }
// else
// {
// return 0;
// }
//
// }
//
//static int IPSpinboxControlProc(HWND hwnd,int message,WPARAM wParam,LPARAM lParam)
//{
// RECT rect;
// GetClientRect(hwnd,&rect);
// switch(message)
// {
// case MSG_CREATE:
// {
// break;
// }
// case MSG_PAINT:
// {
// HDC hdc = BeginPaint(hwnd);
// SetBkMode(hdc,BM_TRANSPARENT);
// SelectFont(hdc,logFont);
// SetBrushColor(hdc,RGB2Pixel(hdc,51,43,204));
// FillBox(hdc,rect.left,rect.top,rect.right,rect.bottom);
// ///////////////////////////取出窗口的数据///////////
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// iAddr1 = ipdata->iAddr1;
// iAddr2 = ipdata->iAddr2;
// iAddr3 = ipdata->iAddr3;
// iAddr4 = ipdata->iAddr4;
// iCursor = ipdata->iCursor;
// char buf[20];
// sprintf(buf,"%d.%d.%d.%d",iAddr1,iAddr2,iAddr3,iAddr4);
// TextOut(hdc,0,0,buf);
// DrawIPAdress(hdc,hwnd);
// EndPaint(hwnd,hdc);
// break;
// }
// case CB_SPIN:
// {
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// if(iCursor <= 1)
// {
// if(wParam == 0)
// {
// if(iAddr1 >= 255) iAddr1 = -1;
// ++iAddr1;
// }
// else
// {
// if(iAddr1 <= 0) iAddr1 = 256;
// --iAddr1;
// }
// }
// else if(iCursor == 2)
// {
// if(wParam == 0)
// {
// if(iAddr2 >= 255) iAddr2 = -1;
// ++iAddr2;
// }
// else
// {
// if(iAddr2 <= 0) iAddr2 = 256;
// --iAddr2;
// }
// }
// else if(iCursor == 3)
// {
// if(wParam == 0)
// {
// if(iAddr3 >= 255) iAddr3 = -1;
// ++iAddr3;
// }
// else
// {
// if(iAddr3 <= 0) iAddr3 = 256;
// --iAddr3;
// }
// }
// else if(iCursor ==4)
// {
// if(wParam == 0)
// {
// if(iAddr4 >= 255) iAddr4 = -1;
// ++iAddr4;
// }
// else
// {
// if(iAddr4 <= 0) iAddr4 = 256;
// --iAddr4;
// }
// }
// ipdata->iAddr1 = iAddr1;
// ipdata->iAddr2 = iAddr2;
// ipdata->iAddr3 = iAddr3;
// ipdata->iAddr4 = iAddr4;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case MSG_KEYDOWN:
// {
// if(wParam == SCANCODE_BACKSPACE)
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// iAddr1 = BackSpaceValue(iAddr1);
// break;
// }
// case 2:
// {
// iAddr2 = BackSpaceValue(iAddr2);
// break;
// }
// case 3:
// {
// iAddr3 = BackSpaceValue(iAddr3);
// break;
// }
// case 4:
// {
// iAddr4 = BackSpaceValue(iAddr4);
// break;
// }
// }
// }
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipdata->iAddr1 = iAddr1;
// ipdata->iAddr2 = iAddr2;
// ipdata->iAddr3 = iAddr3;
// ipdata->iAddr4 = iAddr4;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case MSG_CHAR:
// {
// if((wParam >= 'A' && wParam <= 'Z' && wParam) || (wParam >= 'a' && wParam <= 'z')) return 0;
// else if(wParam >= '0' && wParam <= '9')
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if(iAddr1 >100)
// {
// return 0;
// }
// if((iAddr1 = iAddr1*10+(int)wParam - 48) > 255)
// iAddr1 = 255;
// break;
// }
// case 2:
// {
// if(iAddr2 >100)
// {
// return 0;
// }
// if((iAddr2 = iAddr2*10+(int)wParam - 48) > 255)
// iAddr2 = 255;
// break;
// }
// case 3:
// {
// if(iAddr3 >100)
// {
// return 0;
// }
// if((iAddr3 = iAddr3*10+(int)wParam - 48) > 255)
// iAddr3 = 255;
// break;
// }
// case 4:
// {
// if(iAddr4 >100)
// {
// return 0;
// }
// if((iAddr4 = iAddr4*10+(int)wParam - 48) > 255)
// iAddr4 = 255;
// break;
// }
// }
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipdata->iAddr1 = iAddr1;
// ipdata->iAddr2 = iAddr2;
// ipdata->iAddr3 = iAddr3;
// ipdata->iAddr4 = iAddr4;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// }
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case MSG_LBUTTONDOWN:
// {
// int pos_x,pos_y;
// pos_x = LOWORD(lParam);
// pos_y = HIWORD(lParam);
// IPDATA *ipData = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipData->iCursor = ParseClickRect(pos_x,pos_y);
// SetWindowAdditionalData(hwnd,(DWORD)ipData);
// CreateCaret(hwnd,NULL,1,GetSysCharHeight());
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// SendMessage(hwnd,MSG_SETFOCUS,ipData->iCursor,0);
// break;
// }
// case MSG_MOUSEMOVEIN:
// {
// HideCaret(hwnd);
// DestroyCaret(hwnd);
// IPDATA *ipData = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipData->iCursor = iCursor = 0;
// SetWindowAdditionalData(hwnd,(DWORD)ipData);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// ///////////输入法
// case MSG_INPUTINFO:
// {
// char buf[60];
// strcpy(buf,(const char*)lParam);
// int i = atoi(buf);
// if(i > 255)
// {
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// SendMessage(hwnd,ISB_SETIPVALUE,wParam,i);
// HWND edit_wnd,list_wnd;
// SendMessage(hwnd,CB_GETCHILDREN,(WPARAM)&edit_wnd,(LPARAM)&list_wnd);
// SendMessage(edit_wnd,EM_SETCARETPOS,0,sizeof(buf));
// break;
// }
// case MSG_SETFOCUS:
// {
// char buf[60];
// int iValue = SendMessage(hwnd,ISB_GETIPVALUE,wParam,0);
// sprintf(buf,"%d",iValue);
// RECT rectC,rectP,rectPP;
// if(GetParent(hwnd) != GetActiveWindow())
// {
// GetWindowRect(hwnd,&rectC);
// GetWindowRect(GetParent(hwnd),&rectP);
// GetWindowRect(GetParent(GetParent(hwnd)),&rectPP);
// rectC.left += rectP.left + rectPP.left;
// rectC.top += rectP.top + rectPP.top;
// rectC.right += rectP.left + rectPP.left;
// rectC.bottom += rectP.top + rectPP.top;
// }
// ShowInputWindow(input_hwnd,0,rectC.left,rectC.bottom,rectC.right-rectC.left,rectC.bottom-rectC.top,hwnd,buf,wParam);
// break;
// }
// case ISB_SETIPVALUE:
// {
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// if(wParam == 1) ipdata->iAddr1 = lParam;
// else if(wParam == 2 ) ipdata->iAddr2 = lParam;
// else if(wParam == 3 ) ipdata->iAddr3 = lParam;
// else if(wParam == 4 ) ipdata->iAddr4 = lParam;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// case ISB_GETIPVALUE:
// {
// int iValue = 0;
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// if(wParam == 1) iValue = ipdata->iAddr1;
// else if(wParam == 2 ) iValue = ipdata->iAddr2;
// else if(wParam == 3 ) iValue = ipdata->iAddr3;
// else if(wParam == 4 ) iValue = ipdata->iAddr4;
// return iValue;
// break;
// }
// case MSG_DESTROY:
// {
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// free(ipdata);
//// DestroyLogFont(logFont);
// }
// }
// return (*old_spinbox_proc)(hwnd,message,wParam,lParam);
//
//}
//
//HWND CreateIPSpinBoxWindow(const char* spCation,int id,int x,int y,int w,int h,HWND hParentWnd,DWORD dwAddData,HWND inputWnd)
//{
// input_hwnd = inputWnd;
// IPDATA *ipdata;
// ipdata = (IPDATA*)malloc(sizeof(IPDATA));
// ipdata->iAddr1 = ipdata->iAddr2 = ipdata->iAddr3 = ipdata->iAddr4 = 255;
// ipdata->iCursor = 0;
// HWND hwnd = CreateWindow(CTRL_COMBOBOX,spCation,WS_VISIBLE | WS_CHILD | CBS_AUTOSPIN | CBS_AUTOLOOP,id,x,y,w,h,hParentWnd,dwAddData);
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// HDC hdc;
// HWND hwnd_edit,hwnd_list;
// SendMessage(hwnd,CB_GETCHILDREN,(WPARAM)&hwnd_edit,(LPARAM)&hwnd_list);
// EnableWindow(hwnd_edit,false);
// hdc = GetClientDC(hwnd_edit);
// GetClientRect(hwnd_edit,&rect);
// rcIP1.top = rcIP2.top = rcIP3.top = rcIP4.top = rect.top;
// rcIP1.bottom = rcIP2.bottom = rcIP3.bottom = rcIP4.bottom = rect.bottom;
// rcIP1.left = rect.left;
// rcIP1.right = rect.right/4;
// rcIP2.left = rect.right/4;
// rcIP2.right = rect.right/2;
// rcIP3.left = rect.right/2;
// rcIP3.right = rect.right - rect.right/3;
// rcIP4.left = rect.right - rect.right/3;
// rcIP4.right = rect.right;
// SetWindowBkColor(hwnd_edit,RGB2Pixel(hdc,51,43,204));
// old_spinbox_proc = SetWindowCallbackProc(hwnd,IPSpinboxControlProc);
// ReleaseDC(hdc);
// return hwnd;
//}
//
//////////////////////////////////////////////////////////
/////////////////////define my DateTimeControl ///////////
//////////////////////////////////////////////////////////////
/////////////////////2012/9/14 17:39:31/////////////////
////////////////////////////////////////////////////////////////
//static const char* ctrlStyle;
//static WNDPROC old_datetime_proc;
//static int year,month,day,hour,minute,second;
//
//static int ParseDTimeClickRect(int x,int y)
//{
// if(x > rcIP1.left && x < rcIP1.right)
// {
// iCursor = 1;
// }
// else if(x > rcIP2.left && x < rcIP2.right)
// {
// iCursor = 2;
// }
// else if(x > rcIP3.left && x < rcIP3.right)
// {
// iCursor = 3;
// }
// return iCursor;
//}
//static void DrawTimeText(HWND hwnd, HDC hdc)
//{
// char buf[10];
// int iHeight = GetSysCharHeight();
// int y = (rcIP1.bottom - rcIP1.top - iHeight)/2;
// SetTextCharacterExtra(hdc,2);
// SIZE size;
// int x;
// if(strcmp(ctrlStyle,"TimeControl") == 0)
// {
// GetTextExtent(hdc,"00:00:00",-1,&size);
// x = (rcIP3.right - size.cx)/2;
// if(iCursor == 0 )
// {
// sprintf(buf,"%02d:%02d:%02d",hour,minute,second);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 1)
// {
// sprintf(buf,"%02d",hour);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
// sprintf(buf,":%02d:%02d",minute,second);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 2)
// {
// sprintf(buf,"%02d:",hour);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",minute);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth() + GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
//
// sprintf(buf,":%02d",second);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 3)
// {
// sprintf(buf,"%02d:%02d:",hour,minute);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",second);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,y);
// }
// }
// else
// {
// GetTextExtent(hdc,"0000:00:00",-1,&size);
// x = (rcIP3.right - size.cx)/2;
// if(iCursor == 0 )
// {
//
// sprintf(buf,"%4d-%02d-%02d",year,month,day);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 1)
// {
// sprintf(buf,"%4d",year);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) ;
// SetCaretPos(hwnd,x,10);
// sprintf(buf,"-%02d-%02d",month,day);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 2)
// {
// sprintf(buf,"%4d-",year);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",month);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x+= strlen(buf)*(GetSysCharWidth() + GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
//
// sprintf(buf,"-%02d",day);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 3)
// {
// sprintf(buf,"%4d-%02d-",year,month);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",day);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,y);
// }
// }
//}
//////////////////////
//static bool bInputShow = false;
//static int DateTimeControlProc (HWND hwnd, int message, WPARAM wParam, LPARAM lParam)
//{
// switch(message)
// {
// case MSG_PAINT:
// {
// HDC hdc = BeginPaint(hwnd);
// RECT rectTmp;
// GetClientRect(hwnd,&rectTmp);
// SetBrushColor(hdc,RGB2Pixel(hdc,51,43,204));
// FillBox(hdc,rectTmp.left,rectTmp.top,rectTmp.right,rectTmp.bottom);
// SetWindowBkColor(hwnd,RGB2Pixel(hdc,51,43,204));
// ///////////////////////////取出窗口的数据///////////
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// rcIP1 = data->rc1;
// rcIP2 = data->rc2;
// rcIP3 = data->rc3;
// year = data->year;
// month =data->month;
// day = data->day;
// hour = data->hour;
// minute = data->minute;
// second = data->second;
// iCursor = data->iCursor;
// ctrlStyle = data->style;
//
// DrawTimeText(hwnd,hdc);
// EndPaint(hwnd,hdc);
// break;
// }
// case MSG_KEYDOWN:
// {
// switch (wParam) {
// case SCANCODE_BACKSPACE:
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// year = BackSpaceValue(year);
// }
// else
// {
// hour = BackSpaceValue(hour);
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// month = BackSpaceValue(month);
// }
// else
// {
// minute = BackSpaceValue(minute);
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// day = BackSpaceValue(day);
// }
// else
// {
// second = BackSpaceValue(second);
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case SCANCODE_CURSORBLOCKUP:
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// ++year;
// if (year > 2500)
// {
// year = 1800;
// }
// }
// else
// {
// ++hour;
// if (hour > 23)
// {
// hour = 0;
// }
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// ++month;
// if (month > 12)
// {
// month =1;
// }
// }
// else
// {
// ++minute;
// if (minute > 59)
// {
// minute = 0;
// }
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// ++day;
// if (day > 31)
// {
// day = 1;
// }
// }
// else
// {
// ++second;
// if (second > 59)
// {
// second = 0;
// }
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case SCANCODE_CURSORBLOCKDOWN:
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// --year;
// if (year < 0)
// {
// year = 2500;
// }
// }
// else
// {
// --hour;
// if (hour < 0)
// {
// hour = 23;
// }
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// --month;
// if (month < 1)
// {
// month = 12;
// }
// }
// else
// {
// --minute;
// if (minute < 0)
// {
// minute = 59;
// }
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// --day;
// if (day < 0)
// {
// day = 31;
// }
// }
// else
// {
// --second;
// if (second < 0)
// {
// second = 59;
// }
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// }
// }
// case MSG_CHAR:
// {
// if((wParam >= 'A' && wParam <= 'Z' && wParam) || (wParam >= 'a' && wParam <= 'z')) return 0;
// else if(wParam >= '0' && wParam <= '9')
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if(year > 999)
// {
// return 0;
// }
// if((year = year*10+(int)wParam - 48) > 2500)
// year = 2500;
// }
// else
// {
// if (hour > 19)
// {
// return 0;
// }
// if (hour = hour*10+(int)wParam - 48 > 23)
// {
// hour = 23;
// }
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if(month >9)
// {
// return 0;
// }
// if((month = month*10+(int)wParam - 48) > 12)
// month = 12;
// }
// else
// {
// if (minute > 9)
// {
// return 0;
// }
// if (minute = minute*10+(int)wParam - 48 > 59)
// {
// minute = 59;
// }
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if(day > 9)
// {
// return 0;
// }
// if((day = day*10+(int)wParam - 48) > 31)
// day = 31;
// }
// else
// {
// if (second > 9)
// {
// return 0;
// }
// if (second = second*10+(int)wParam - 48 > 59)
// {
// second = 59;
// }
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// }
// ///////////输入法
// case MSG_INPUTINFO:
// {
// char buf[60];
// strcpy(buf,(const char*)lParam);
// int i = 0;
// if(strlen(buf) == 0) i = 0;
// else i = atoi(buf);
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// int iMonth = data->month;
// if(strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if((wParam == 1 && i > 2500 ) || (wParam == 2 && i > 12) || (wParam == 3 && ((month == 1 || month ==3 || month ==5 || month ==7 ||month ==8 || month ==10 || month ==12) && i > 31) || ((month ==2 || month ==4 || month ==6 || month ==9 || month ==11) && i > 30)))
// {
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// }
// else
// {
// if((wParam == 1 && i > 23) || (wParam == 2 && i > 59) || (wParam == 3 && i > 59))
// {
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// }
// SendMessage(hwnd,ISB_SETIPVALUE,wParam,i);
// break;
// }
// case ISB_SETIPVALUE:
// {
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// if(strcmp(data->style,CLASS_DATETIME_DATE) == 0)
// {
// if(wParam == 1) data->year = lParam;
// else if(wParam == 2) data->month = lParam;
// else if(wParam == 3) data->day = lParam;
// }
// else
// {
// if(wParam == 1) data->hour = lParam;
// else if(wParam == 2) data->minute = lParam;
// else if(wParam == 3)data->second = lParam;
// }
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// case ISB_GETIPVALUE:
// {
// int iValue = 0;
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// if(strcmp(data->style,CLASS_DATETIME_DATE) == 0)
// {
//
// if(wParam == 1) iValue = data->year;
// else if(wParam == 2) iValue = data->month;
// else if(wParam == 3) iValue = data->day;
// }
// else
// {
// if(wParam == 1) iValue = data->hour;
// else if(wParam == 2) iValue = data->minute;
// else if(wParam == 3) iValue = data->second;
// }
// return iValue;
// break;
// }
// case MSG_SETFOCUS:
// {
//
// char buf[60];
// int iValue = SendMessage(hwnd,ISB_GETIPVALUE,wParam,0);
// sprintf(buf,"%d",iValue);
// RECT rectC,rectP,rectPP;
// if(GetParent(hwnd) != GetActiveWindow())
// {
// GetWindowRect(hwnd,&rectC);
// GetWindowRect(GetParent(hwnd),&rectP);
// GetWindowRect(GetParent(GetParent(hwnd)),&rectPP);
// rectC.left += rectP.left + rectPP.left;
// rectC.top += rectP.top + rectPP.top;
// rectC.right += rectP.left + rectPP.left;
// rectC.bottom += rectP.top + rectPP.top;
// }
// ShowInputWindow(input_hwnd,0,rectC.left,rectC.bottom,rectC.right-rectC.left,rectC.bottom-rectC.top,hwnd,buf,wParam);
// bInputShow = true;
// break;
// }
// case MSG_LBUTTONDOWN:
// {
// int pos_x,pos_y;
// pos_x = LOWORD(lParam);
// pos_y = HIWORD(lParam);
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->iCursor = ParseDTimeClickRect(pos_x,pos_y);
// SendMessage(hwnd,MSG_SETFOCUS,data->iCursor,0);
// SetWindowAdditionalData(hwnd,(DWORD)data);
// CreateCaret(hwnd,NULL,1,GetSysCharHeight());
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// case MSG_NCLBUTTONDOWN:
// {
// int x,y;
// x = LOWORD(lParam);
// y = HIWORD(lParam);
// HideCaret(hwnd);
// DestroyCaret(hwnd);
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->iCursor = iCursor = 0;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// case MSG_DESTROY:
// {
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// free(data);
// break;
// }
// case MSG_CLOSE:
// {
//// DestroyLogFont(logFont);
// }
// }
// return (*old_datetime_proc) (hwnd, message, wParam, lParam);
//}
//
///////////创建日期时间控件。 就是一个编辑框与旋钮控件组合。 父窗口要给出,在子对话框用到了。
//HWND CreateDateTimeWindow(const char* sStyle,int id,int x,int y,int w,int h,HWND hParentWnd,DWORD dwAddData,HWND inputWnd)
//{
// input_hwnd = inputWnd;
// HWND hwnd,spin;
// RECT rect;
// ctrlStyle = sStyle;
// hwnd = CreateWindow(CTRL_SLEDIT,"",WS_VISIBLE | WS_CHILD,id,x,y,w-10,h,hParentWnd,dwAddData);
// SetWindowFont(hwnd,logFont);
// GetClientRect(hwnd,&rect);
//
// rcIP1.top= rcIP2.top = rcIP3.top = rect.top;
// rcIP1.bottom = rcIP2.bottom = rcIP3.bottom = rect.bottom;
// rcIP1.left = rect.left;
// if (strcmp(sStyle,CLASS_DATETIME_DATE) == 0)
// {
// rcIP1.right = rect.right/2;
// rcIP2.left = rect.right/2;
// rcIP2.right = rect.right*3/4;
// rcIP3.left = rect.right*3/4;
// rcIP3.right = rect.right;
// }else
// {
// rcIP1.right = rect.right/3;
// rcIP2.left = rect.right/3;
// rcIP2.right = rect.right*2/3;
// rcIP3.left = rect.right*2/3;
// rcIP3.right = rect.right;
// }
// DATETIMEDATA *timeData = (DATETIMEDATA*)malloc(sizeof(DATETIMEDATA));
// time_t curTime;
// curTime = time(NULL);
// struct tm *tt = localtime(&curTime);
// timeData->year = tt->tm_year+1900;
// timeData->month = tt->tm_mon + 1;
// timeData->day = tt->tm_mday;
// timeData->hour = tt->tm_hour;
// timeData->minute = tt->tm_min;
// timeData->second = tt->tm_sec;
// timeData->iCursor = iCursor = 0;
// strcpy(timeData->style,const_cast<char*>(sStyle));
// timeData->SetRC(rcIP1,rcIP2,rcIP3);
// SetWindowAdditionalData(hwnd,(DWORD)timeData);
// old_datetime_proc = SetWindowCallbackProc (hwnd, DateTimeControlProc);
// spin = CreateWindow (CTRL_SPINBOX,
// "",
// WS_CHILD | WS_VISIBLE,
// IDC_SPINBOX,
// x+w-10, y+(rect.bottom - 20)/2 , 0, 0, hParentWnd, 0);
// SendMessage (spin, SPM_SETTARGET, 0, hwnd);
// return hwnd;
//}
///////////////////////////////////////////////////IP 跟时间日期控件 由于3.0输入法原因,改版;
//////////////////////////////////////////////////////////////////////////////
///////////////////define IPControl
/////////////////////////////////////////////////////////////////////////////
//static int iAddr1,iAddr2,iAddr3,iAddr4;
//static int iCursor = 0;
//static WNDPROC old_spinbox_proc;
//static RECT rect;
//static RECT rcIP1,rcIP2,rcIP3,rcIP4;
//
///////计算鼠标点击在那个区域
//static int ParseClickRect(int x,int y)
//{
// if(x > rcIP1.left && x < rcIP1.right)
// {
// iCursor = 1;
// }
// else if(x > rcIP2.left && x < rcIP2.right)
// {
// iCursor = 2;
// }
// else if(x > rcIP3.left && x < rcIP3.right)
// {
// iCursor = 3;
// }
// else if(x > rcIP4.left && x < rcIP4.right)
// {
// iCursor = 4;
// }
// return iCursor;
//}
//static int DrawIPAdress(HDC hdc,HWND hwnd)
//{
// char buf[20];
// if(iCursor == 0 )
// {
//
// sprintf(buf,"%3d.%3d.%3d.%3d",iAddr1,iAddr2,iAddr3,iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
// }
// else if(iCursor == 1)
// {
// sprintf(buf,"%3d",iAddr1);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,20,10,buf);
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20 ;
// SetCaretPos(hwnd,x,10);
// sprintf(buf,".%3d.%3d.%3d",iAddr2,iAddr3,iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,10,buf);
// }
// else if(iCursor == 2)
// {
// sprintf(buf,"%3d.",iAddr1);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
//
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20;
// sprintf(buf,"%3d",iAddr2);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,10,buf);
// x += strlen(buf)*(GetSysCharWidth() + GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
//
// sprintf(buf,".%3d.%3d",iAddr3,iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,10,buf);
// }
// else if(iCursor == 3)
// {
// sprintf(buf,"%3d.%3d.",iAddr1,iAddr2);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
//
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20;
// sprintf(buf,"%3d",iAddr3);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,10,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
// sprintf(buf,".%3d",iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,10,buf);
//
// }
// else
// {
// sprintf(buf,"%3d.%3d.%3d.",iAddr1,iAddr2,iAddr3);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,20,10,buf);
// int x = strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) + 20 ;
// sprintf(buf,"%3d",iAddr4);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,10,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
// }
// ShowCaret(hwnd);
//}
//
//static int BackSpaceValue(int num)
//{
// if(num > 1000)
// {
// int x = num/1000;
// int y = (num - x*1000)/100;
// int z = (num - x*1000 - y*100)/10;
// return x*100+y*10+z;
// }
// else if(num > 100)
// {
// int x = num/100;
// int y = (num - x*100)/10;
// return x*10+y;
// }
// else if(num >10)
// {
// int x = num/10;
// return x;
// }
// else
// {
// return 0;
// }
//
// }
//
//static int IPSpinboxControlProc(HWND hwnd,int message,WPARAM wParam,LPARAM lParam)
//{
// RECT rect;
// GetClientRect(hwnd,&rect);
// switch(message)
// {
// case MSG_CREATE:
// {
// break;
// }
// case MSG_PAINT:
// {
// HDC hdc = BeginPaint(hwnd);
// SetBkMode(hdc,BM_TRANSPARENT);
// SelectFont(hdc,logFont);
// SetBrushColor(hdc,RGB2Pixel(hdc,51,43,204));
// FillBox(hdc,rect.left,rect.top,rect.right,rect.bottom);
// ///////////////////////////取出窗口的数据///////////
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// iAddr1 = ipdata->iAddr1;
// iAddr2 = ipdata->iAddr2;
// iAddr3 = ipdata->iAddr3;
// iAddr4 = ipdata->iAddr4;
// iCursor = ipdata->iCursor;
// char buf[20];
// sprintf(buf,"%d.%d.%d.%d",iAddr1,iAddr2,iAddr3,iAddr4);
// TextOut(hdc,0,0,buf);
// DrawIPAdress(hdc,hwnd);
// EndPaint(hwnd,hdc);
// break;
// }
// case CB_SPIN:
// {
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// if(iCursor <= 1)
// {
// if(wParam == 0)
// {
// if(iAddr1 >= 255) iAddr1 = -1;
// ++iAddr1;
// }
// else
// {
// if(iAddr1 <= 0) iAddr1 = 256;
// --iAddr1;
// }
// }
// else if(iCursor == 2)
// {
// if(wParam == 0)
// {
// if(iAddr2 >= 255) iAddr2 = -1;
// ++iAddr2;
// }
// else
// {
// if(iAddr2 <= 0) iAddr2 = 256;
// --iAddr2;
// }
// }
// else if(iCursor == 3)
// {
// if(wParam == 0)
// {
// if(iAddr3 >= 255) iAddr3 = -1;
// ++iAddr3;
// }
// else
// {
// if(iAddr3 <= 0) iAddr3 = 256;
// --iAddr3;
// }
// }
// else if(iCursor ==4)
// {
// if(wParam == 0)
// {
// if(iAddr4 >= 255) iAddr4 = -1;
// ++iAddr4;
// }
// else
// {
// if(iAddr4 <= 0) iAddr4 = 256;
// --iAddr4;
// }
// }
// ipdata->iAddr1 = iAddr1;
// ipdata->iAddr2 = iAddr2;
// ipdata->iAddr3 = iAddr3;
// ipdata->iAddr4 = iAddr4;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case MSG_KEYDOWN:
// {
// if(wParam == SCANCODE_BACKSPACE)
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// iAddr1 = BackSpaceValue(iAddr1);
// break;
// }
// case 2:
// {
// iAddr2 = BackSpaceValue(iAddr2);
// break;
// }
// case 3:
// {
// iAddr3 = BackSpaceValue(iAddr3);
// break;
// }
// case 4:
// {
// iAddr4 = BackSpaceValue(iAddr4);
// break;
// }
// }
// }
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipdata->iAddr1 = iAddr1;
// ipdata->iAddr2 = iAddr2;
// ipdata->iAddr3 = iAddr3;
// ipdata->iAddr4 = iAddr4;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case MSG_CHAR:
// {
// if((wParam >= 'A' && wParam <= 'Z' && wParam) || (wParam >= 'a' && wParam <= 'z')) return 0;
// else if(wParam >= '0' && wParam <= '9')
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if(iAddr1 >100)
// {
// return 0;
// }
// if((iAddr1 = iAddr1*10+(int)wParam - 48) > 255)
// iAddr1 = 255;
// break;
// }
// case 2:
// {
// if(iAddr2 >100)
// {
// return 0;
// }
// if((iAddr2 = iAddr2*10+(int)wParam - 48) > 255)
// iAddr2 = 255;
// break;
// }
// case 3:
// {
// if(iAddr3 >100)
// {
// return 0;
// }
// if((iAddr3 = iAddr3*10+(int)wParam - 48) > 255)
// iAddr3 = 255;
// break;
// }
// case 4:
// {
// if(iAddr4 >100)
// {
// return 0;
// }
// if((iAddr4 = iAddr4*10+(int)wParam - 48) > 255)
// iAddr4 = 255;
// break;
// }
// }
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipdata->iAddr1 = iAddr1;
// ipdata->iAddr2 = iAddr2;
// ipdata->iAddr3 = iAddr3;
// ipdata->iAddr4 = iAddr4;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// }
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case MSG_LBUTTONDOWN:
// {
// int pos_x,pos_y;
// pos_x = LOWORD(lParam);
// pos_y = HIWORD(lParam);
// IPDATA *ipData = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipData->iCursor = ParseClickRect(pos_x,pos_y);
// SetWindowAdditionalData(hwnd,(DWORD)ipData);
// CreateCaret(hwnd,NULL,1,GetSysCharHeight());
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// SendMessage(hwnd,MSG_SETFOCUS,ipData->iCursor,0);
// break;
// }
// case MSG_MOUSEMOVEIN:
// {
// HideCaret(hwnd);
// DestroyCaret(hwnd);
// IPDATA *ipData = (IPDATA*)GetWindowAdditionalData(hwnd);
// ipData->iCursor = iCursor = 0;
// SetWindowAdditionalData(hwnd,(DWORD)ipData);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// ///////////输入法
// case MSG_INPUTINFO:
// {
// char buf[60];
// strcpy(buf,(const char*)lParam);
// int i = atoi(buf);
// if(i > 255)
// {
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// SendMessage(hwnd,ISB_SETIPVALUE,wParam,i);
// HWND edit_wnd,list_wnd;
// SendMessage(hwnd,CB_GETCHILDREN,(WPARAM)&edit_wnd,(LPARAM)&list_wnd);
// SendMessage(edit_wnd,EM_SETCARETPOS,0,sizeof(buf));
// break;
// }
// case MSG_SETFOCUS:
// {
// char buf[60];
// int iValue = SendMessage(hwnd,ISB_GETIPVALUE,wParam,0);
// sprintf(buf,"%d",iValue);
// RECT rectC,rectP,rectPP;
// if(GetParent(hwnd) != GetActiveWindow())
// {
// GetWindowRect(hwnd,&rectC);
// GetWindowRect(GetParent(hwnd),&rectP);
// GetWindowRect(GetParent(GetParent(hwnd)),&rectPP);
// rectC.left += rectP.left + rectPP.left;
// rectC.top += rectP.top + rectPP.top;
// rectC.right += rectP.left + rectPP.left;
// rectC.bottom += rectP.top + rectPP.top;
// }
// ShowInputWindow(input_hwnd,0,rectC.left,rectC.bottom,rectC.right-rectC.left,rectC.bottom-rectC.top,hwnd,buf,wParam);
// break;
// }
// case ISB_SETIPVALUE:
// {
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// if(wParam == 1) ipdata->iAddr1 = lParam;
// else if(wParam == 2 ) ipdata->iAddr2 = lParam;
// else if(wParam == 3 ) ipdata->iAddr3 = lParam;
// else if(wParam == 4 ) ipdata->iAddr4 = lParam;
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// case ISB_GETIPVALUE:
// {
// int iValue = 0;
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// if(wParam == 1) iValue = ipdata->iAddr1;
// else if(wParam == 2 ) iValue = ipdata->iAddr2;
// else if(wParam == 3 ) iValue = ipdata->iAddr3;
// else if(wParam == 4 ) iValue = ipdata->iAddr4;
// return iValue;
// break;
// }
// case MSG_DESTROY:
// {
// IPDATA *ipdata = (IPDATA*)GetWindowAdditionalData(hwnd);
// free(ipdata);
//// DestroyLogFont(logFont);
// }
// }
// return (*old_spinbox_proc)(hwnd,message,wParam,lParam);
//
//}
//
//HWND CreateIPSpinBoxWindow(const char* spCation,int id,int x,int y,int w,int h,HWND hParentWnd,DWORD dwAddData,HWND inputWnd)
//{
// input_hwnd = inputWnd;
// IPDATA *ipdata;
// ipdata = (IPDATA*)malloc(sizeof(IPDATA));
// ipdata->iAddr1 = ipdata->iAddr2 = ipdata->iAddr3 = ipdata->iAddr4 = 255;
// ipdata->iCursor = 0;
// HWND hwnd = CreateWindow(CTRL_COMBOBOX,spCation,WS_VISIBLE | WS_CHILD | CBS_AUTOSPIN | CBS_AUTOLOOP,id,x,y,w,h,hParentWnd,dwAddData);
// SetWindowAdditionalData(hwnd,(DWORD)ipdata);
// HDC hdc;
// HWND hwnd_edit,hwnd_list;
// SendMessage(hwnd,CB_GETCHILDREN,(WPARAM)&hwnd_edit,(LPARAM)&hwnd_list);
// EnableWindow(hwnd_edit,false);
// hdc = GetClientDC(hwnd_edit);
// GetClientRect(hwnd_edit,&rect);
// rcIP1.top = rcIP2.top = rcIP3.top = rcIP4.top = rect.top;
// rcIP1.bottom = rcIP2.bottom = rcIP3.bottom = rcIP4.bottom = rect.bottom;
// rcIP1.left = rect.left;
// rcIP1.right = rect.right/4;
// rcIP2.left = rect.right/4;
// rcIP2.right = rect.right/2;
// rcIP3.left = rect.right/2;
// rcIP3.right = rect.right - rect.right/3;
// rcIP4.left = rect.right - rect.right/3;
// rcIP4.right = rect.right;
// SetWindowBkColor(hwnd_edit,RGB2Pixel(hdc,51,43,204));
// old_spinbox_proc = SetWindowCallbackProc(hwnd,IPSpinboxControlProc);
// ReleaseDC(hdc);
// return hwnd;
//}
//
//////////////////////////////////////////////////////////
/////////////////////define my DateTimeControl ///////////
//////////////////////////////////////////////////////////////
/////////////////////2012/9/14 17:39:31/////////////////
////////////////////////////////////////////////////////////////
//static const char* ctrlStyle;
//static WNDPROC old_datetime_proc;
//static int year,month,day,hour,minute,second;
//
//static int ParseDTimeClickRect(int x,int y)
//{
// if(x > rcIP1.left && x < rcIP1.right)
// {
// iCursor = 1;
// }
// else if(x > rcIP2.left && x < rcIP2.right)
// {
// iCursor = 2;
// }
// else if(x > rcIP3.left && x < rcIP3.right)
// {
// iCursor = 3;
// }
// return iCursor;
//}
//static void DrawTimeText(HWND hwnd, HDC hdc)
//{
// char buf[10];
// int iHeight = GetSysCharHeight();
// int y = (rcIP1.bottom - rcIP1.top - iHeight)/2;
// SetTextCharacterExtra(hdc,2);
// SIZE size;
// int x;
// if(strcmp(ctrlStyle,"TimeControl") == 0)
// {
// GetTextExtent(hdc,"00:00:00",-1,&size);
// x = (rcIP3.right - size.cx)/2;
// if(iCursor == 0 )
// {
// sprintf(buf,"%02d:%02d:%02d",hour,minute,second);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 1)
// {
// sprintf(buf,"%02d",hour);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
// sprintf(buf,":%02d:%02d",minute,second);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 2)
// {
// sprintf(buf,"%02d:",hour);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",minute);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth() + GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
//
// sprintf(buf,":%02d",second);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 3)
// {
// sprintf(buf,"%02d:%02d:",hour,minute);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",second);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,y);
// }
// }
// else
// {
// GetTextExtent(hdc,"0000:00:00",-1,&size);
// x = (rcIP3.right - size.cx)/2;
// if(iCursor == 0 )
// {
//
// sprintf(buf,"%4d-%02d-%02d",year,month,day);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 1)
// {
// sprintf(buf,"%4d",year);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc)) ;
// SetCaretPos(hwnd,x,10);
// sprintf(buf,"-%02d-%02d",month,day);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 2)
// {
// sprintf(buf,"%4d-",year);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",month);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x+= strlen(buf)*(GetSysCharWidth() + GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,10);
//
// sprintf(buf,"-%02d",day);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
// }
// else if(iCursor == 3)
// {
// sprintf(buf,"%4d-%02d-",year,month);
// SetBkColor(hdc,RGB2Pixel(hdc,51,43,204));
// TextOut(hdc,x,y,buf);
//
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// sprintf(buf,"%02d",day);
// SetBkColor(hdc,RGB2Pixel(hdc,106,116,216));
// TextOut(hdc,x,y,buf);
// x += strlen(buf)*(GetSysCharWidth()+GetTextCharacterExtra(hdc));
// SetCaretPos(hwnd,x,y);
// }
// }
//}
//////////////////////
//static bool bInputShow = false;
//static int DateTimeControlProc (HWND hwnd, int message, WPARAM wParam, LPARAM lParam)
//{
// switch(message)
// {
// case MSG_PAINT:
// {
// HDC hdc = BeginPaint(hwnd);
// RECT rectTmp;
// GetClientRect(hwnd,&rectTmp);
// SetBrushColor(hdc,RGB2Pixel(hdc,51,43,204));
// FillBox(hdc,rectTmp.left,rectTmp.top,rectTmp.right,rectTmp.bottom);
// SetWindowBkColor(hwnd,RGB2Pixel(hdc,51,43,204));
// ///////////////////////////取出窗口的数据///////////
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// rcIP1 = data->rc1;
// rcIP2 = data->rc2;
// rcIP3 = data->rc3;
// year = data->year;
// month =data->month;
// day = data->day;
// hour = data->hour;
// minute = data->minute;
// second = data->second;
// iCursor = data->iCursor;
// ctrlStyle = data->style;
//
// DrawTimeText(hwnd,hdc);
// EndPaint(hwnd,hdc);
// break;
// }
// case MSG_KEYDOWN:
// {
// switch (wParam) {
// case SCANCODE_BACKSPACE:
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// year = BackSpaceValue(year);
// }
// else
// {
// hour = BackSpaceValue(hour);
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// month = BackSpaceValue(month);
// }
// else
// {
// minute = BackSpaceValue(minute);
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// day = BackSpaceValue(day);
// }
// else
// {
// second = BackSpaceValue(second);
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case SCANCODE_CURSORBLOCKUP:
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// ++year;
// if (year > 2500)
// {
// year = 1800;
// }
// }
// else
// {
// ++hour;
// if (hour > 23)
// {
// hour = 0;
// }
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// ++month;
// if (month > 12)
// {
// month =1;
// }
// }
// else
// {
// ++minute;
// if (minute > 59)
// {
// minute = 0;
// }
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// ++day;
// if (day > 31)
// {
// day = 1;
// }
// }
// else
// {
// ++second;
// if (second > 59)
// {
// second = 0;
// }
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// case SCANCODE_CURSORBLOCKDOWN:
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// --year;
// if (year < 0)
// {
// year = 2500;
// }
// }
// else
// {
// --hour;
// if (hour < 0)
// {
// hour = 23;
// }
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// --month;
// if (month < 1)
// {
// month = 12;
// }
// }
// else
// {
// --minute;
// if (minute < 0)
// {
// minute = 59;
// }
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// --day;
// if (day < 0)
// {
// day = 31;
// }
// }
// else
// {
// --second;
// if (second < 0)
// {
// second = 59;
// }
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// }
// }
// case MSG_CHAR:
// {
// if((wParam >= 'A' && wParam <= 'Z' && wParam) || (wParam >= 'a' && wParam <= 'z')) return 0;
// else if(wParam >= '0' && wParam <= '9')
// {
// switch(iCursor)
// {
// case 0:
// case 1:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if(year > 999)
// {
// return 0;
// }
// if((year = year*10+(int)wParam - 48) > 2500)
// year = 2500;
// }
// else
// {
// if (hour > 19)
// {
// return 0;
// }
// if (hour = hour*10+(int)wParam - 48 > 23)
// {
// hour = 23;
// }
// }
// break;
// }
// case 2:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if(month >9)
// {
// return 0;
// }
// if((month = month*10+(int)wParam - 48) > 12)
// month = 12;
// }
// else
// {
// if (minute > 9)
// {
// return 0;
// }
// if (minute = minute*10+(int)wParam - 48 > 59)
// {
// minute = 59;
// }
// }
// break;
// }
// case 3:
// {
// if (strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if(day > 9)
// {
// return 0;
// }
// if((day = day*10+(int)wParam - 48) > 31)
// day = 31;
// }
// else
// {
// if (second > 9)
// {
// return 0;
// }
// if (second = second*10+(int)wParam - 48 > 59)
// {
// second = 59;
// }
// }
// break;
// }
// }
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->year = year;
// data->month = month;
// data->day = day;
// data->hour = hour;
// data->minute = minute;
// data->second = second;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// return 0;
// }
// }
// ///////////输入法
// case MSG_INPUTINFO:
// {
// char buf[60];
// strcpy(buf,(const char*)lParam);
// int i = 0;
// if(strlen(buf) == 0) i = 0;
// else i = atoi(buf);
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// int iMonth = data->month;
// if(strcmp(ctrlStyle,CLASS_DATETIME_DATE) == 0)
// {
// if((wParam == 1 && i > 2500 ) || (wParam == 2 && i > 12) || (wParam == 3 && ((month == 1 || month ==3 || month ==5 || month ==7 ||month ==8 || month ==10 || month ==12) && i > 31) || ((month ==2 || month ==4 || month ==6 || month ==9 || month ==11) && i > 30)))
// {
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// }
// else
// {
// if((wParam == 1 && i > 23) || (wParam == 2 && i > 59) || (wParam == 3 && i > 59))
// {
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// }
// SendMessage(hwnd,ISB_SETIPVALUE,wParam,i);
// break;
// }
// case ISB_SETIPVALUE:
// {
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// if(strcmp(data->style,CLASS_DATETIME_DATE) == 0)
// {
// if(wParam == 1) data->year = lParam;
// else if(wParam == 2) data->month = lParam;
// else if(wParam == 3) data->day = lParam;
// }
// else
// {
// if(wParam == 1) data->hour = lParam;
// else if(wParam == 2) data->minute = lParam;
// else if(wParam == 3)data->second = lParam;
// }
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// SendMessage(hwnd,MSG_SETFOCUS,wParam,0);
// break;
// }
// case ISB_GETIPVALUE:
// {
// int iValue = 0;
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// if(strcmp(data->style,CLASS_DATETIME_DATE) == 0)
// {
//
// if(wParam == 1) iValue = data->year;
// else if(wParam == 2) iValue = data->month;
// else if(wParam == 3) iValue = data->day;
// }
// else
// {
// if(wParam == 1) iValue = data->hour;
// else if(wParam == 2) iValue = data->minute;
// else if(wParam == 3) iValue = data->second;
// }
// return iValue;
// break;
// }
// case MSG_SETFOCUS:
// {
//
// char buf[60];
// int iValue = SendMessage(hwnd,ISB_GETIPVALUE,wParam,0);
// sprintf(buf,"%d",iValue);
// RECT rectC,rectP,rectPP;
// if(GetParent(hwnd) != GetActiveWindow())
// {
// GetWindowRect(hwnd,&rectC);
// GetWindowRect(GetParent(hwnd),&rectP);
// GetWindowRect(GetParent(GetParent(hwnd)),&rectPP);
// rectC.left += rectP.left + rectPP.left;
// rectC.top += rectP.top + rectPP.top;
// rectC.right += rectP.left + rectPP.left;
// rectC.bottom += rectP.top + rectPP.top;
// }
// ShowInputWindow(input_hwnd,0,rectC.left,rectC.bottom,rectC.right-rectC.left,rectC.bottom-rectC.top,hwnd,buf,wParam);
// bInputShow = true;
// break;
// }
// case MSG_LBUTTONDOWN:
// {
// int pos_x,pos_y;
// pos_x = LOWORD(lParam);
// pos_y = HIWORD(lParam);
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->iCursor = ParseDTimeClickRect(pos_x,pos_y);
// SendMessage(hwnd,MSG_SETFOCUS,data->iCursor,0);
// SetWindowAdditionalData(hwnd,(DWORD)data);
// CreateCaret(hwnd,NULL,1,GetSysCharHeight());
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// case MSG_NCLBUTTONDOWN:
// {
// int x,y;
// x = LOWORD(lParam);
// y = HIWORD(lParam);
// HideCaret(hwnd);
// DestroyCaret(hwnd);
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// data->iCursor = iCursor = 0;
// SetWindowAdditionalData(hwnd,(DWORD)data);
// SendMessage(hwnd,MSG_PAINT,wParam,lParam);
// break;
// }
// case MSG_DESTROY:
// {
// DATETIMEDATA *data = (DATETIMEDATA*)GetWindowAdditionalData(hwnd);
// free(data);
// break;
// }
// case MSG_CLOSE:
// {
//// DestroyLogFont(logFont);
// }
// }
// return (*old_datetime_proc) (hwnd, message, wParam, lParam);
//}
//
///////////创建日期时间控件。 就是一个编辑框与旋钮控件组合。 父窗口要给出,在子对话框用到了。
//HWND CreateDateTimeWindow(const char* sStyle,int id,int x,int y,int w,int h,HWND hParentWnd,DWORD dwAddData,HWND inputWnd)
//{
// input_hwnd = inputWnd;
// HWND hwnd,spin;
// RECT rect;
// ctrlStyle = sStyle;
// hwnd = CreateWindow(CTRL_SLEDIT,"",WS_VISIBLE | WS_CHILD,id,x,y,w-10,h,hParentWnd,dwAddData);
// SetWindowFont(hwnd,logFont);
// GetClientRect(hwnd,&rect);
//
// rcIP1.top= rcIP2.top = rcIP3.top = rect.top;
// rcIP1.bottom = rcIP2.bottom = rcIP3.bottom = rect.bottom;
// rcIP1.left = rect.left;
// if (strcmp(sStyle,CLASS_DATETIME_DATE) == 0)
// {
// rcIP1.right = rect.right/2;
// rcIP2.left = rect.right/2;
// rcIP2.right = rect.right*3/4;
// rcIP3.left = rect.right*3/4;
// rcIP3.right = rect.right;
// }else
// {
// rcIP1.right = rect.right/3;
// rcIP2.left = rect.right/3;
// rcIP2.right = rect.right*2/3;
// rcIP3.left = rect.right*2/3;
// rcIP3.right = rect.right;
// }
// DATETIMEDATA *timeData = (DATETIMEDATA*)malloc(sizeof(DATETIMEDATA));
// time_t curTime;
// curTime = time(NULL);
// struct tm *tt = localtime(&curTime);
// timeData->year = tt->tm_year+1900;
// timeData->month = tt->tm_mon + 1;
// timeData->day = tt->tm_mday;
// timeData->hour = tt->tm_hour;
// timeData->minute = tt->tm_min;
// timeData->second = tt->tm_sec;
// timeData->iCursor = iCursor = 0;
// strcpy(timeData->style,const_cast<char*>(sStyle));
// timeData->SetRC(rcIP1,rcIP2,rcIP3);
// SetWindowAdditionalData(hwnd,(DWORD)timeData);
// old_datetime_proc = SetWindowCallbackProc (hwnd, DateTimeControlProc);
// spin = CreateWindow (CTRL_SPINBOX,
// "",
// WS_CHILD | WS_VISIBLE,
// IDC_SPINBOX,
// x+w-10, y+(rect.bottom - 20)/2 , 0, 0, hParentWnd, 0);
// SendMessage (spin, SPM_SETTARGET, 0, hwnd);
// return hwnd;
//}
0 0
- minigui自定义控件。IP 时间日期
- 自定义IP控件添加到MINIGUI源码中
- 自定义IP控件添加到MINIGUI源码中
- 创建MiniGUI自定义控件
- 创建MiniGUI自定义控件
- Flex 自定义日期时间控件
- MiniGUI 自定义控件教程1
- MiniGUI 自定义控件教程2
- MiniGUI 自定义控件教程3
- MiniGUI 自定义控件教程4
- MiniGUI 自定义控件教程5
- MiniGUI 自定义控件教程6
- MiniGUI 自定义控件教程7
- MiniGUI 自定义控件(一)
- Android实现自定义的 时间日期 控件
- 自定义Android日期时间选择控件DateTimePickerDialog
- 自定义日期和时间选择组合控件
- 自定义带动画的日期时间控件
- 【转】MiniGUI之软键盘
- unicode CString转换。
- C++ regex 正则表达式 匹配IP 域名
- MFC CListCtrl隐藏列 锁定列
- minigui3.0中文乱码解决
- minigui自定义控件。IP 时间日期
- minigui3.0.12 交叉编译
- miniGUI3.0.12 关于消息 MSG_SIZECHANGING 的使用
- win7 提升管理员权限。转载自百度牛人回答。
- tcpdump 抓包让wireshark来分析
- javascript 闭包的好处及坏处
- MFC 文件选择对话框
- Java编程思想总结4
- 获取windows系统版本