LPRECT ?????????????????

abc2003World 2003-08-19 09:54:11

CRect r;
GetClientRect(r); 或 GetClientRect(&r) 效果一样 !!!

为什么 ????????????
...全文
134 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
canany1tellme 2003-08-19
  • 打赏
  • 举报
回复
因为存在CRect::operator LPRECT ()类型转换的运算符
nustchen 2003-08-19
  • 打赏
  • 举报
回复
去看看类的成员吧 里面已经重载了一些操作符
nuclearweapon 2003-08-19
  • 打赏
  • 举报
回复
重载函数
xtuzi 2003-08-19
  • 打赏
  • 举报
回复
CRect是从
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
这个结构派生的
而且重载了操作符LPRECT、&等等。所以r或者&r都是一样的.
/******************************************************************************** * DIBAPI.H * * Header file for Device-Independent Bitmap (DIB) API. Provides * function prototypes and constants for DIB functions ********************************************************************************/ #ifndef __DIBAPI_H_ #define __DIBAPI_H_ ////////////////////////////////////////////////////////// /* Handle to a DIB */ #define HDIB HANDLE // Dib Header Marker - used in writing DIBs to files #define DIB_HEADER_MARKER ((WORD) ('M' << 8) | 'B') /* DIB constants */ #define PALVERSION 0x300 /* DIB copy constants */ #define PW_WINDOW 1 #define PW_CLIENT 2 // Image position in Canvas #define LEFT_UP 1 #define CENTER_UP 2 #define RIGHT_UP 3 #define LEFT_CENTER 4 #define CENTER_CENTER 5 #define CENTER_RIGHT 6 #define LEFT_DOWN 7 #define CENTER_DOWN 8 #define RIGHT_DOWN 9 /* Gray Method */ #define MEAN_GRAY 0 #define MAXIMUM_GRAY 1 #define WEIGHT_GRAY 2 /* Color Model */ #define RGB_COLOR 0 #define CMYK_COLOR 1 #define HSI_COLOR 2 #define HLS_COLOR 3 #define UNDEFINED (-1.0) // Separate color #define SEPARATE_RED 1 #define SEPARATE_GREEN 2 #define SEPARATE_BLUE 3 // Filte color #define FILTE_RED 1 #define FILTE_GREEN 2 #define FILTE_BLUE 3 // Filter algorithm #define FILTER1 1 #define FILTER2 2 #define FILTER3 3 // Edge enhancement algorithm #define VERT 1 #define HORZ 2 #define VERTHORZ 3 #define NORTH 4 #define NORTHEAST 5 #define EAST 6 #define SOUTH 7 #define SOUTHEAST 8 #define SOUTHWEST 9 #define WEST 10 #define NORTHWEST 11 #define LAP1 12 #define LAP2 13 #define LAP3 14 #define LAP4 15 #define SOBEL 16 #define HOUGH 17 /* DIB Macros*/ // WIDTHBYTES performs DWORD-aligning of DIB scanlines. The "bits" // parameter is the bit count for the scanline (biWidth * biBitCount), // and this macro returns the number of DWORD-aligned bytes needed // to hold those bits. #define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4) #define IS_WIN30_DIB(lpbi) ((*(LPDWORD)(lpbi)) == sizeof(BITMAPINFOHEADER)) #define RECTWIDTH(lpRect) ((lpRect)->right - (lpRect)->left) #define RECTHEIGHT(lpRect) ((lpRect)->bottom - (lpRect)->top) #define BOUND(x, mn, mx) ((x) < (mn) ? (mn) : ((x) > (mx) ? (mx) : (x))) #define WaitCursorBegin() HCURSOR hcURSOR = SetCursor(LoadCursor(NULL, IDC_WAIT)) #define WaitCursorEnd() SetCursor(hcURSOR) /* function prototypes */ // DIB initialization HDIB CreateDIB(DWORD, DWORD, WORD); HDIB CreateDefaultDIB(DWORD dwWidth, DWORD dwHeight); void DestroyDIB(HDIB); HDIB LoadDIB (LPTSTR); BOOL SaveDIB (HDIB, LPTSTR); HDIB ReadDIBFile(HANDLE); BOOL WriteDIBFile(HDIB hDib, HANDLE hFile); // DIB attributes DWORD BytesPerLine(LPBYTE lpDIB); DWORD BytesPerLine(HDIB hDIB); DWORD DIBlockSize(HDIB hDIB); DWORD DIBlockSize(LPBYTE lpDIB); DWORD DIBHeight (LPBYTE lpDIB); DWORD DIBHeight (HDIB hDIB); DWORD DIBWidth (LPBYTE lpDIB); DWORD DIBWidth (HDIB hDIB); WORD DIBNumColors (LPBYTE lpDIB); WORD DIBNumColors (HDIB hDIB); WORD DIBBitCount (LPBYTE lpDIB); WORD DIBBitCount (HDIB hDIB); LPBYTE FindDIBBits (LPBYTE lpDIB); WORD PaletteSize (LPBYTE lpDIB); WORD PaletteSize (HDIB hDIB); // DIB display BOOL PaintBitmap(HDC, LPRECT, HBITMAP, LPRECT, HPALETTE, DWORD); BOOL PaintDIB(HDC, LPRECT, HDIB, LPRECT, HPALETTE, DWORD); BOOL DitherDisplayDIB(HDC, LPRECT, HDIB, LPRECT, DWORD); // DIB operations HBITMAP DIBToDIBSection(LPBYTE lpDIB); HBITMAP DIBToDIBSection(HDIB hDIB); HDIB DIBSectionToDIB(HBITMAP hBitmap); HDIB ConvertDIBFormat(LPBYTE lpSrcDIB, UINT nWidth, UINT nHeight, UINT nbpp, BOOL bStretch, HPALETTE hPalSrc); HDIB ConvertDIBFormat(HDIB hDIB, UINT nWidth, UINT nHeight, UINT nbpp, BOOL bStretch, HPALETTE hPalSrc); HDIB ConvertDIBFormat(LPBYTE lpSrcDIB, UINT nbpp, HPALETTE hPalSrc); HDIB ConvertDIBFormat(HDIB hDIB, UINT nbpp, HPALETTE hPalSrc); HDIB BitmapToDIB (HBITMAP, HPALETTE); HDIB BitmapToDIB (HBITMAP, HPALETTE, WORD); HDIB ChangeBitmapFormat (HBITMAP, WORD, DWORD, HPALETTE); HBITMAP DIBToBitmap (HDIB hDIB, HPALETTE hPal); HDIB ChangeDIBFormat (HDIB, WORD, DWORD); // DIB palette HPALETTE CreateDIBPalette(LPBYTE lpDIB); HPALETTE CreateDIBPalette(HDIB hDIB); BOOL DisplayPalette(HDC hDC, LPRECT lpRect, HPALETTE hPal); HPALETTE CopyPalette(HPALETTE hPalSrc); HPALETTE GetSystemPalette(void); int PalEntriesOnDevice (HDC hDC); HPALETTE CreateIdentifyPalette(HPALETTE hPalSrc); BOOL MapDIBColorsToPalette(HDIB hDIB, HPALETTE hPalette); HPALETTE CreateDitherPalette(); HDIB CreateDither8BppDIB(HDIB hDIB); // DIB capture HBITMAP CopyScreenToBitmap (LPRECT); HBITMAP CopyWindowToBitmap (HWND, WORD); HBITMAP CopyClientRectToBitmap(HWND hWnd, LPRECT lpRect); HDIB CopyScreenToDIB (LPRECT); HDIB CopyWindowToDIB (HWND, WORD); HDIB CopyClientRectToDIB(HWND hWnd, LPRECT lpRect); // effect display void DrawTransparentBitmap(HDC, HBITMAP, LONG, LONG, COLORREF); BOOL Fade(int nDeltaR, int nDeltaG, int nDeltaB, BYTE rm, BYTE gm, BYTE bm, BYTE *r, BYTE *g, BYTE *b); // Helper HANDLE CopyHandle(HANDLE h); void Delay(DWORD dwDelayTime); // DIB transform HBITMAP CropBitmap(HBITMAP, LPRECT); HDIB CropDIB(HDIB, LPRECT); HDIB CutDIB(HDIB, LPRECT); HDIB MergeDIB(HDIB hDib1, HDIB hDib2, POINT ptTopLeft); HDIB TransparentMergeDIB(HDIB hDIB1, HDIB hDIB2, POINT ptTopLeft, COLORREF crTransparent); HBITMAP RotateBitmapNT(HBITMAP hBitmap, double fDegrees, COLORREF clrBack); HBITMAP RotateBitmap(HBITMAP hBitmap, double fDegrees, COLORREF clrBack); HDIB RotateDIB(HDIB hDIB, double fDegrees, COLORREF clrBack); HDIB RotateDIB(HDIB hDib); HDIB FlipHorzDIB(HDIB hDib); HDIB FlipVertDIB(HDIB hDib); HDIB ChangeDIBSize(HDIB hDIB, int nWidth, int nHeight); HDIB ChangeDIBCanvasSize(HDIB hDIB, int nWidth, int nHeight, int nPosition); // Color quantization HPALETTE CreateOctreePalette(HDIB hDIB, UINT nMaxColors, UINT nColorBits); HPALETTE CreateOctreePalette(LPBYTE lpDIB, UINT nMaxColors, UINT nColorBits); // color process HDIB SeparateRGBfromDIB(HDIB hDib, int nIndex); HDIB FilteRGBfromDIB(HDIB hDib, int nIndex); HDIB ColorQuantizeDIB(HDIB hDIB, UINT nColorBits, UINT nMaxColors); HPALETTE ConvertToGrayscale(HDIB hDib, int nMethod, double fRedWeight, double fGreenWeight, double fBlueWeight); BOOL AdjustDIBColor(HDIB hDib, int nColorModel, int v1, int v2, int v3); BOOL AdjustDIBBrightness(HDIB hDib, int v); BOOL AdjustDIBContrast(HDIB hDib, int v); void RGBtoHSI(BYTE r, BYTE g, BYTE b, double *h, double *s, double *i); void HSItoRGB(double h, double s, double i, BYTE *r, BYTE *g, BYTE *b); void RGBtoHLS(BYTE r, BYTE g, BYTE b, double *h, double *l, double *s); void HLStoRGB(double h, double l, double s, BYTE *r, BYTE *g, BYTE *b); void CMYKtoRGB(BYTE c, BYTE m, BYTE y, BYTE k, BYTE *r, BYTE *g, BYTE *b); void RGBtoCMYK(BYTE r, BYTE g, BYTE b, BYTE *c, BYTE *m, BYTE *y, BYTE *k); void ChangeContrast(int nDelta, BYTE *r, BYTE *g, BYTE *b); void ChangeBrightness(int nDelta, BYTE *r, BYTE *g, BYTE *b); // image process BOOL HighPassDIB(HDIB hDib, int Strength, int nAlgorithm); BOOL LowPassDIB(HDIB hDib, int Strength, int nAlgorithm); BOOL EdgeEnhanceDIB(HDIB hDib, int Strength, int nDirection); BOOL MedianFilterDIB(HDIB hDib); BOOL ErosionDIB(HDIB hDib, BOOL bHori); BOOL DilationDIB(HDIB hDib, BOOL bHori); BOOL MorphOpenDIB(HDIB hDib, BOOL bHori); BOOL MorphCloseDIB(HDIB hDib, BOOL bHori); BOOL ContourDIB(HDIB hDib, BOOL bHori); BOOL ThinningDIB(HDIB hDib); BOOL ReverseDIB(HDIB hDib); BOOL FFTDIB(HDIB hDIB); BOOL DCTDIB(HDIB hDIB); BOOL WALhDIB(HDIB hDIB); ////////////////////////////////////////////////////////// #endif //__DIBAPI_H_
原tab控件,仿360开关控件版权归原作者! VB控件背景透明代码来自:新浪 “玄雨清风”的博客 感谢以上两位源代码作者 链接:http://pan.baidu.com/s/1hrAEXqG 密码:nfhc '-----------------------以下是转自博客的控件透明源代码(可透明至父窗体或桌面)------------- '添加一个用户控件UserControl,代如下: Option Explicit '实现用户控件UserControl的"伪透明" Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const WM_ERASEBKGND = &H14 Private Const WM_PAINT = &HF Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source Public Event MouseDown(Button As Integer, Shift As Integer, X A

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧