//GDI+為圖片的載入、儲存,屏蔽了內部編解碼、壓縮解壓縮等的具體細節,給程式員帶來了極大的方便//目前版本的GDI+支援bmp jpeg gif tiff png等幾種格式//下面的程式基本思路是先將目標DC上的內容存到記憶體BITMAP//再使用GDI+Bitmap::FromHBITMAP載入記憶體位元影像,並儲存成檔案//此版本在Win32和MFC環境下測試通過////使用GDI+ 儲存HDC為位元影像檔案#include <rpc.h>#include
#pragma once #include <stdio.h>#include <stdlib.h>#include <math.h>#include <limits.h>#include <mmsystem.h>#include <mmreg.h>#include <msacm.h>#include <dsound.h>#pragma comment(lib, "dsound")#pragma
BOOL CheckAreaOverlap(POINT *ptArray1, const int ptNum1, //地區1座標點 座標點數量 POINT *ptArray2, const int ptNum2) //地區2座標點 座標點數量{ CRgn rgn1, rgn2; if(rgn1.CreatePolygonRgn(ptArray1, ptNum1, WINDING) &&
BOOL FullScreenViewCtrl(HWND m_hWnd, //想要全屏的視窗控制代碼 BOOL bFullScreen) //TURE進入全屏 FALSE退出全屏{ static HWND pParentWndSave = NULL; //父視窗控制代碼 static DWORD dwWindowStyleSave = 0; //視窗風格 static RECT rcWndRectSave = {0, 0, 0, 0};
m_ListCtrl.InsertColumn(0, _T("ABCD")); m_ListCtrl.InsertColumn(1, _T("CDEF")); m_ListCtrl.InsertItem(0, _T("00"), 0); m_ListCtrl.InsertItem(1, _T("10"), 0); CHeaderCtrl *pHead = m_ListCtrl.GetHeaderCtrl(); if(pHead &&
#pragma once// TimeGraphics_Ctrl.h : header file//#include <math.h>/////////////////////////////////////////////////////////////////////////////// CTimeGraphics_Ctrl window#define GRID_X_NUMBER 10 //X軸座標柵格數#define GRID_Y_NUMBER 10
HBRUSH CDlg1Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if(pWnd->GetDlgCtrlID() == IDC_EDIT1) { COLORREF bkColor =
#pragma once// EditEx.h : header file///////////////////////////////////////////////////////////////////////////////// CEditEx windowclass CEditEx : public CEdit{// Constructionpublic:CEditEx();// Attributespublic:// Operationspublic:// Overrides//
//從CEdit派生一個只允許輸入16進位資料的新類//支援輸入 空格 0-F Backspace//在啟用時切換IME至英文鍵盤//在失去焦點時恢複IME//遇非法字元時有警示音提示 #pragma once// CHexEditCtrlclass CHexEditCtrl : public CEdit{DECLARE_DYNAMIC(CHexEditCtrl)public:CHexEditCtrl();virtual ~CHexEditCtrl();protected:afx_msg
//.h head file#include <afxpriv.h> // For WM_KICKIDLEpublic:afx_msg LRESULT OnKickIdle(WPARAM, LPARAM);//.CPPBEGIN_MESSAGE_MAP(CIdleDlg, CDialog) ON_MESSAGE(WM_KICKIDLE, OnKickIdle)END_MESSAGE_MAP()// Handle MFC private message WM_KICKIDLE.
{ HANDLE hEvent = CreateEvent(NULL, FALSE, //automatically resets TRUE, //flag for initial state NULL); WaitForSingleObject(hEvent, -1); //此處正常退出,因為前面的初始值是TRUE SetEvent(hEvent); //設定事件 WaitForSingleObject(hEvent, -1);
//SCrollAblePropertyPage.h#pragma once// CSCrollAblePropertyPage 對話方塊class CSCrollAblePropertyPage : public CPropertyPage{DECLARE_DYNAMIC(CSCrollAblePropertyPage)public:CSCrollAblePropertyPage(UINT nIDD=IDC_STATIC);virtual ~CSCrollAblePropertyPage();
void TestManualFormatClipboard(){ //自訂資料結構體 typedef struct _MYSTRUCT { CHAR charVal[16]; int iVal; long lVal; double fVal; }MYSTRUCT, *LPMYSTRUCT; MYSTRUCT wrStruct = {"ABCD", 0, 1, 2.0}; MYSTRUCT rdStruct = {"DCBA", 0, 2, 4.0};
#include <mmsystem.h>#include <uuids.h> #include <initguid.h>#include <Strmif.h>#include <control.h>#include <ddrawex.h> #pragma comment(lib, "Strmiids.lib")#define OATRUE (-1) #define OAFALSE (0) BOOL CDlg666Dlg:
//從CPropertySheet派生一個新類 //具有自繪題頭功能 #pragma once// OwnerDraw_PropertySheet.h : header file///////////////////////////////////////////////////////////////////////////////// COwnerDraw_PropertySheetclass COwnerDraw_PropertySheet : public
GDI+ 中支援IStream載入映像,因此可以構建一個IStream流,實現從IStream載入映像1: 在CXXXXApp::InitInstance() 中添加 AfxOleInit(); 2: 資源編輯器中匯入圖片檔案,如JPG,PNG等,並命名資源類型3: 修改標頭檔.h 代碼如下4: 修改.cpp檔案 代碼如下注意資源名需要與代碼中的資源名對應 //.h#include <atlimage.h>protected: CImage
//UNICODE字串轉換到UNICODE資料//返迴轉換後的UNICODE資料長度int ConvUniStr2Unicode(LPCSTR szUnicodeString, WCHAR *pWchar, int iBuffSize){ int iRet = 0; int iUstrLen = strlen(szUnicodeString); ASSERT(pWchar); ASSERT(iUstrLen%6 == 0); int iOffset = 0;
使用HTTP傳輸 #include <afxinet.h>#include <afxsock.h>//http傳輸DWORD HttpTranslate( int iRequstType, LPCTSTR pstrURL, LPCTSTR strOptions, CString &szReturn){ DWORD dwError = 0; DWORD dwServiceType; CString strServer; CString
TCHAR szOutBuffer[128+1] = {0}; WORD wLanguageID = MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED); LCID Locale = MAKELCID(wLanguageID, SORT_CHINESE_PRCP); int iRet = LCMapString(Locale, LCMAP_SIMPLIFIED_CHINESE, _T("亞洲"), -1,
void SpecialFolder_Browse(HWND hwnd){LPMALLOC g_pMalloc;/* Gets the Shell's default allocator */if (::SHGetMalloc(&g_pMalloc) == NOERROR){BROWSEINFO bi; LPSTR lpBuffer;LPITEMIDLIST pidlSpecialFolder; // PIDL for Special FolderLPITEMIDLIST