??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美激情欧美狂野欧美精品 ,欧美精品国产精品,在线日韩中文字幕http://m.shnenglu.com/szhoftuncun/专注力才是王?/description>zh-cnWed, 24 Sep 2025 04:22:11 GMTWed, 24 Sep 2025 04:22:11 GMT60安装WPShttp://m.shnenglu.com/szhoftuncun/archive/2013/05/27/200625.htmlfoxtailfoxtailMon, 27 May 2013 13:27:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2013/05/27/200625.htmlhttp://m.shnenglu.com/szhoftuncun/comments/200625.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2013/05/27/200625.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/200625.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/200625.html阅读全文

foxtail 2013-05-27 21:27 发表评论
]]>
如何修改mysql root密码http://m.shnenglu.com/szhoftuncun/archive/2009/06/02/86562.htmlfoxtailfoxtailTue, 02 Jun 2009 08:58:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2009/06/02/86562.htmlhttp://m.shnenglu.com/szhoftuncun/comments/86562.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2009/06/02/86562.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/86562.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/86562.html1、编辑MySQL(和PHP搭配之最佳组?配置文gQ?/p>

windows环境中:%MySQL(和PHP搭配之最佳组?_installdir%\my.ini //一般在MySQL(和PHP搭配之最佳组?安装目录下有my.ini即MySQL(和PHP搭配之最佳组?的配|文件?br>linux环境中:/etc/my.cnf

在[MySQL(和PHP搭配之最佳组?d]配置D|加如下一行:
skip-grant-tables

保存退出编辑?/p>

2、然后重启MySQL(和PHP搭配之最佳组?服务

windows环境中:
net stop MySQL(和PHP搭配之最佳组?
net start MySQL(和PHP搭配之最佳组?

linux环境中:
/etc/init.d/MySQL(和PHP搭配之最佳组?d restart

3、设|新的ROOT密码

然后再在命o行下执行Q?br>MySQL(和PHP搭配之最佳组? -uroot -p MySQL(和PHP搭配之最佳组?
直接回R无需密码卛_q入数据库了?/p>

现在我们执行如下语句把root密码更新?7758521Q?br>update user set password=PASSWORD("7758521") where user='root';

quit 退出MySQL(和PHP搭配之最佳组??/p>

4、还原配|文件ƈ重启服务

然后修改MySQL(和PHP搭配之最佳组?配置文g把刚才添加的那一行删除?/p>

再次重vMySQL(和PHP搭配之最佳组?服务Q密码修改完毕?/p>

修改完毕?/p>

用新密码7758521试一下吧Q又能登入MySQL(和PHP搭配之最佳组?的感觉就是不一样吧Q?/p>

foxtail 2009-06-02 16:58 发表评论
]]>
关于文字输出的函数TabbedTextOut[整理]http://m.shnenglu.com/szhoftuncun/archive/2009/01/20/72382.htmlfoxtailfoxtailTue, 20 Jan 2009 09:14:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2009/01/20/72382.htmlhttp://m.shnenglu.com/szhoftuncun/comments/72382.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2009/01/20/72382.html#Feedback4http://m.shnenglu.com/szhoftuncun/comments/commentRss/72382.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/72382.html关于文本的输?/strong>

在如何自q写文本控件时Q有关于如何展开Tab的具体做法:

 1void TextView::PaintLine(HDC hdc,int line_no)
 2
 3{
 4
 5       int length = document->GetLineLength(line_no + start_line_no);
 6
 7       char *buffer = new char[length];
 8
 9       document->GetLineBuffer(buffer,line_no + start_line_no);
10
11       //容纳单行文本矩Ş区域
12
13       RECT line_rect;
14
15       GetClientRect(tv_hwnd,&line_rect);
16
17       line_rect.top = line_no*(font_height + font_extra);
18
19       line_rect.bottom = line_rect.top + font_height + font_extra;
20
21       line_rect.left -= start_column_no*5;
22
23       //展开Tab字符
24
25       int tab = 4*font_width;
26
27       int width = TabbedTextOut(hdc,line_rect.left,line_rect.top,buffer,length,1,&tab,line_rect.left);//输出文字
28
29       line_rect.left = LOWORD(width);
30
31       ExtTextOut(hdc,0,0,ETO_OPAQUE,&line_rect,0,0,0);
32
33       delete []buffer;
34
35}

36


要明白他的意思才能在以后的编写扩展功能才能得心应手。首先要明白一个函数?/span>

 

TabbedTextOut

功能Q?/span>

1一个字W串写到指定位置?/span>

2q按制表位位|数l?/span>里的值展开制表W?/span>?/span>

 

函数原型Q?/span>

LONG TabbedTextOut(HDC hdc, int X, int Y, LPCTSTR lpString, int nCount, int nTabPositions, LPINT lpn TabStopPositions, int nTabOrigin)

 

参数意义Q?/span>

Hdc Q设备环境句柄?/span>

XQ?/span>   字符串开始点?/span>x坐标Q逻辑单位Q?/span>

YQ?/span>   字符串开始点?/span>y坐标Q逻辑单位Q?/span>

lpStringQ缓冲区指针?/span>

nCountQ?/span> 字符数?/span>

nTabPositionsQ指定制表位位置数组的值的个数?/span>

lpnTabStopPositionsQ数l,包含制表位位|(逻辑单位Q。必L照升序保存?/span>

nTabOriginQ指定制表符展开的开始位|的x坐标Q逻辑单位Q?/span>

 

q回|字符串的寸Q高位字表示高度Q低位表C宽度?/span>

 

注:

??span style="FONT: 7pt 'Times New Roman'">       如果nTabPositions0Q且lpnTabStopPositionsgNULLQ那么制表符会按q_字符宽度?/span>8位来扩展?/span>

??span style="FONT: 7pt 'Times New Roman'">       如果lpnTabStopPositions数组包含一个以上的话,则制表位被设为数l里的每一个|׃ؓlpnTabStopPositions个?/span>

??span style="FONT: 7pt 'Times New Roman'">       nTabOrigin参数允许一个应用程序ؓ一行多ơ调?/span>TabbedTextOut。如果应用程序多ơ调?/span>TabbedTextOutQ?/span>nTabOrigin每次都设|相同的|则此函数在相对于nTabOrigin指定的位|处展开所有的制表W?/span>

 

知识补充Q?/span>

TabbedTextOut(hdc,line_rect.left,line_rect.top,buffer,length,1,&tab,line_rect.left);

W六个参CؓnTabPosition = 1

W七个参CؓlpnTabStopPositions = tab = 4*font_width

W八个参CnTabOrigin = line_rect.left

因ؓ~辑器以行位模型Q当然是从一行的最左端开始。制表位数组g个等于字体宽度的4倍?/span>

 

摘自?/span>windows~程》的解释Q?/span>

TabbedTextOut的前五个参数?/span>TextOut相同Q第六个参数是蟩位间隔数Q第七个是以囄为单位的跳位间隔数组?/span>

 

?/span>1?/span>  如果q_字符宽度?/span>8个图素,而?zhn)希望?/span>5个字W加一个蟩位间隔,则这个数l将包含40?/span>80?/span>120Q按递增序依此cL?/span>

??span style="FONT: 7pt 'Times New Roman'">       如果W六个和W七个参数是0?/span>NULLQ则跳位间隔按每八个q_字符宽度讑֮?/span>

??span style="FONT: 7pt 'Times New Roman'">       如果W六个参数是1Q则W七个参数指向一个整敎ͼ表示跳位间隔重复增大的倍数Q例如,如果W六个参数是1Qƈ且第七个参数指向gؓ30的变量,则蟩位间隔设定在30?/span>60?/span>90…囄处)。最后一个参数给Z从蟩位间隔开始测量的逻辑x坐标Q它与字W串的v始位|可能相同也可能不同?/span>

 

~辑器的展开tab属于?/span>3】,增大倍数?/span>4个字W宽度?/span>4倍与8倍的区别如图Q?/span>

 

 



foxtail 2009-01-20 17:14 发表评论
]]>
俄罗斯方块V1.2http://m.shnenglu.com/szhoftuncun/archive/2008/11/16/67025.htmlfoxtailfoxtailSat, 15 Nov 2008 16:22:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/11/16/67025.htmlhttp://m.shnenglu.com/szhoftuncun/comments/67025.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/11/16/67025.html#Feedback2http://m.shnenglu.com/szhoftuncun/comments/commentRss/67025.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/67025.htmll箋上个版本修改了一?/span>bugQ然后美化了一下?/span>

发现自己的审观不咋的,得漂亮的人家觉得不漂亮。还是照着大家要求的画一个?/span>

主要解决的问题是Q这ơ行列都用宏表示Q这样可以修改行列,H口大小也动态改变?/span>

另外长条旋{变成Z型问题也解决Q主要是取模的时候绕回去了?/span>

其中最重要的要是解决了刷新闪烁问题,管HAM2008指点q,始终没做成,q次vczh说了一句话q醒了我。根本不应该使用InvalidateRect函数Q直接画Q然后用~冲DC可以了?br>

VOID OnPaint()
{
    HDC hdc 
= GetDC(hWnd);
    HDC bitmap_dc 
= CreateCompatibleDC(hdc);
    HBITMAP bitmap 
= CreateCompatibleBitmap(hdc,1024,768);
    SelectObject(bitmap_dc,bitmap);
    
   
/********************************************
   DrawBlock
   ********************************************
*/

   
int x = tetris.GetX();
   
int y = tetris.GetY();

   
for(int i=0; i<4++i)
   
{
       
for(int j=0; j<4++j)
       
{
           
if(current_block[i][j] == 1)
           
{
               DrawBlock(bitmap_dc,y
+i+1,x+j+1,3,3,tetris.GetColor(),RGB(0,0,0));
           }

       }

   }


   
/*****************************************
   *DrawContainer
   *****************************************
*/

   
for(int i=0; i<ROWS; ++i)
   
{
       
for(int j=0; j<COLS; ++j)
       
{
           
if(Container[i][j] == 1)
           
{
               DrawBlock(bitmap_dc,i
+1,j+1,3,3,ColorTable[i][j],RGB(0,0,0));
           }

       }

   }


   BitBlt(hdc,
0,0,1024,768,bitmap_dc,0,0,SRCCOPY);
   DeleteDC(bitmap_dc);
   DeleteObject(bitmap);
   ReleaseDC(hWnd,hdc);
}

以上是GDI~冲的主要实C码?br>


可执行文件下?/a>
代码q是{全部完善后上传吧。Redist误行下载?/span>
代码估计要有大的改动Q感觉现在的代码没一点C++的味道?br>有点单,用陈坤的话说是扩展性不好?

foxtail 2008-11-16 00:22 发表评论
]]>
俄罗斯方块V1.0http://m.shnenglu.com/szhoftuncun/archive/2008/11/09/66377.htmlfoxtailfoxtailSat, 08 Nov 2008 16:06:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/11/09/66377.htmlhttp://m.shnenglu.com/szhoftuncun/comments/66377.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/11/09/66377.html#Feedback3http://m.shnenglu.com/szhoftuncun/comments/commentRss/66377.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/66377.html记得8月䆾写过俄罗斯方块,那会全是用坐标表C的。包括所有方块的变换Q甚x块的表示。导致程序内部许多的case语句Q甚为麻烦。代码量也有q?/span>1800行左叟뀂而且写完?/span>bug很多Q修正也修正不完Q异常头痛便攑ּ了?/span>

现在看看《编E之》的俄罗斯方块的思\Q又惌vvczh用脚本的写的俄罗斯方块,又起了兴趣。便重新设计完成了,q次基本没什?/span>bug了。只不过操作习惯上和QQ的俄|斯方块q有些不同?/span>

1.       在底部的时候,如果按住旋{不放Q则会停留原地旋转。原因是Z接触底部时旋{不插入墙壁,同接触左右墙壁一P做了调整方块坐标处理。处理方法是Ҏ(gu)旋{后方块的坐标加上Q减去)最大列(最列)在减去(左)双界得到。底部也是这栯的。当然有了这L便出现了这L小?/span>bugQ不q我怿没h会在底部按住不放的?/span>

2.       q次方块全部存储在一个一l数l中Q通过指针的变换来改变方块U类与旋转状态,但是Z方便操作Q就拯C一个二l数l中。v初设计是一个四l数l,q样方便多了,但是VS2008的编译器却不能编译通过Q?/span>int[4][4]?/span>int **p的{换不成功Q朋友说是编译器问题。后来经Lend3d_很多目都是不用大于二维的数l的Q于是干脆就用了一l数l,本来要听从他意见用结构表CZ个低二位的数l元素,但是初始化和使用都不是很方便?/span>

3.       另外关于GDI~冲Q试用了一下,但是作用貌似不大Q不知道原因。关于这斚w的知识援助还是要感谢HAM2008的帮助?br>



贴个头文件出来就可以知道大致做法了?br>
#ifndef TETRIS_H
#define TETRIS_H

#pragma once

extern int Container[18][10];//容纳方块的空?/span>
extern int current_block[4][4];

/****************************
* 方块的主要行?br>****************************
*/

class Tetris
{
public:
    Tetris();
    
~Tetris();
    
void GenerateBlock();
    
void StepLeft();
    
void StepRight();
    
void StepDown();
    
void Rotate();
    
void CaculateScore();
    
void IsOver();
public:
    
bool lost;
    
int score;//得分
    int GetX();
    
int GetY();
private:
    inline 
int CaculateMinCol();
    inline 
int CaculateMinRow();
    inline 
int CaculateMaxCol();
    inline 
int CaculateMaxRow();

    
void CaculateBlockBoundary();
    
bool DetectCollision();
    
void CopyToContainer();
    
void CopyToBlock();

    
int *block;
    
int total_rotate;
    
int kind;

    
int offset_x;
    
int offset_y;

    
int min_col,max_col;
    
int min_row,max_row;
}
;

#endif //TETRIS_H

可能自己设计上的能力q是不吧,有些函数是不得以写的Q比如四个inline函数Q因的时候用的是四个循环Q计完p跛_两层循环?br>N用gotoQ如果直接return则后面的代码执行不到了,不得以做了四个辅助函数?br>
源代码下载:TetrisV1.0
可执行文件下载:TetrisV1.0.exe 如果不能q行可到微Y下蝲VS2008?redist_x86

foxtail 2008-11-09 00:06 发表评论
]]>
文gMD5计算工具http://m.shnenglu.com/szhoftuncun/archive/2008/10/26/65052.htmlfoxtailfoxtailSat, 25 Oct 2008 17:50:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/10/26/65052.htmlhttp://m.shnenglu.com/szhoftuncun/comments/65052.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/10/26/65052.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/65052.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/65052.htmlC++博客上的蚂蚁l结者的文章都写的不错,它写了个MD5的算法,我就用他的算法写了个程序?br>单的计算文g的MD5Q支持拖拽文件。现在还只是单的计算?br>目前打算改进的是
1dq度条?br>2化界面?br>3解决大文件计时界面僉|问题?br>
个h写程序喜Ƣ不断改q,也就是偶然突发奇惛_个程序。以后想h改q一下。嘎嘎?br>要是忘记了,׃|。代码可点击q里下蝲



foxtail 2008-10-26 01:50 发表评论
]]>
ClipBoard.ASM文g分析http://m.shnenglu.com/szhoftuncun/archive/2008/10/03/63189.htmlfoxtailfoxtailFri, 03 Oct 2008 08:27:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/10/03/63189.htmlhttp://m.shnenglu.com/szhoftuncun/comments/63189.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/10/03/63189.html#Feedback1http://m.shnenglu.com/szhoftuncun/comments/commentRss/63189.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/63189.html脑袋里没有点API的储量,惛_什么东西还是很困难的。厚U薄发才是硬道理。所以先看看别h的代码,偷学几个API的用法?/p>
SetClipData proc lpData:LPSTR,dwSize:dword
    LOCAL    hMem:HANDLE ;
==>内存块句?br>    LOCAL    pMem:dword  ;==>内存块指?br>
    mov        eax,dwSize
    shr        eax,
3
    inc        eax
    shl        eax,
3 ;==>(dwSize/8 + 1)*8 不满8的倍数则补?br>    invoke xGlobalAlloc, GHND or GMEM_DDESHARE, eax
    test    eax,eax       ;
==>甌成功则l否则蟩转到@exit2
    je        @exit2
    mov        hMem,eax
    invoke GlobalLock,eax    ;hGlob ;
==>锁定甌的内存块q回内存块指?br>    test    eax,eax
    je        @exit1
    mov        pMem,eax
    invoke RtlMoveMemory,eax,lpData,dwSize  ;
==>复制lpData的内容到甌的内存块?br>    mov        eax,pMem
    add        eax,dwSize
    mov        
byte ptr [eax],0 ;==>在内存块最后添0l束
    invoke GlobalUnlock,hMem ;
==>解锁Q内存块指针无?br>    invoke OpenClipboard,NULL
    .
if eax
        invoke EmptyClipboard
        invoke SetClipboardData,CF_TEXT,hMem ;
==>数据关联到剪脓(chung)?br>        invoke CloseClipboard
        xor        eax,eax        ;
0 - Ok
        jmp        @exit3
    .endif
  @exit1:
    invoke  GlobalFree, hMem ;
==>未锁定成功则释放该内存块
    xor     eax, eax
  @exit2:
    dec     eax          ; 
-1 - error
  @exit3:
    ret

SetClipData endp

看完q段代码我有一个疑问,q里是将lpData的数据拷贝到一个内存块Q然后与剪脓(chung)板关联,我这里解释ؓ兌Q我p为剪贴板不应该是一个内存区域,我猜是一个链表之cȝl构Q然后链表每一个节点存储一个内存区域的指针q有其他的信息,然后Ҏ(gu)信息来管理?/span>

否则应该可以直接?/span>lpData来跟剪脓(chung)板关联。另一个原因是lpData是局部的随时会被释放的。如有不正确q望指正?/span>



foxtail 2008-10-03 16:27 发表评论
]]>
STL学习摘要之序列式容器http://m.shnenglu.com/szhoftuncun/archive/2008/09/07/61219.htmlfoxtailfoxtailSun, 07 Sep 2008 07:24:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/09/07/61219.htmlhttp://m.shnenglu.com/szhoftuncun/comments/61219.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/09/07/61219.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/61219.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/61219.html
#include<iostream>
#include
<vector>
using namespace std;

void Print(vector<int>& vec)
{
    
for(int i = 0; i < vec.size(); ++i)cout<<' '<<vec[i];
    cout
<<endl;
}


int main()
{
    vector
<int> first;
    vector
<int> second(41000);
    vector
<int> third(second.begin() + 2, second.end());
    vector
<int> forth(third);

    vector
<int>::iterator it;

    
int val[] = {1,2,3,4};
    vector
<int> fifth(val, val + sizeof(val) / sizeof(val[0]));

    cout
<<"First:";
    Print(first);
    cout
<<"Second:";
    Print(second);
    cout
<<"Third:";
    Print(third);
    cout
<<"Forth:";
    Print(forth);
    cout
<<"Fifth:";
    Print(fifth);

    first.swap(fifth);
    cout
<<"First:";
    Print(first);

    first.push_back(
12);
    cout
<<"First:";
    Print(first);

    it 
= first.begin() + 2;
    first.erase(it,first.end());
    cout
<<"First:";
    Print(first);

    it 
= first.begin();
    first.insert(it,
100);
    cout
<<"First:";
    Print(first);

    system(
"pause");
    
return 0;
}
l果Q?br>
Deque操作代码cM?br>优势Q比之Vector在头部插入删除元素也有很高效率。也支持q代器随问。不q元素在内存中不q箋?br>
List操作基本相同不过多了一些功?br>优势Q高效遍历元素,帔R旉插入删除L位置元素?br>
#include<iostream>
#include
<list>
using namespace std;

void Print(list<int>& ls)
{
    list
<int>::iterator it = ls.begin();
    
for(; it != ls.end(); ++it)cout<<' '<<*it;
    cout
<<endl;
}


void Print(list<double>& ls)
{
    list
<double>::iterator it = ls.begin();
    
for(; it != ls.end(); ++it)cout<<' '<<*it;
    cout
<<endl;
}


int main()
{
    list
<int> first;
    list
<int> second(41000);

    list
<int>::iterator it;

    
double first_val[] = {1.0,3.0,2.0,4.0};
    list
<double> third(first_val, first_val + sizeof(first_val) / sizeof(first_val[0]));

    
double sencond_val[] = {1.1,4.3,1.4,2.9};
    list
<double> fourth(sencond_val, sencond_val + sizeof(sencond_val)/sizeof(sencond_val[0]));

    it 
= first.begin();
    first.insert(it,
100);
    cout
<<"First:";
    Print(first);

    it 
= first.begin();
    first.splice(it,second);
//splice四个参数Q第一个参数是插入的位|,W二个是插入源,W三四个参数指定范围
    cout<<"First:";
    Print(first);

    first.remove(
100);
    cout
<<"First:";
    Print(first);

    third.sort();
    fourth.sort();
    cout
<<"Third:";
    Print(third);
    cout
<<"Fourth:";
    Print(fourth);

    third.merge(fourth);
    cout
<<"Third:";
    Print(third);

    system(
"pause");
    
return 0;
}
l果Q?br>
splice在代码中已经说明Qmerge函数合ƈ两个list而且是按照从到大的序Qmerge有另一个版本包含两个参敎ͼ另一个是一?br>q回boolcd的函敎ͼ说明了比较规则。用法相同。另外一些函C用比较简单?br>该类W记均参考:www.cplusplus.com

foxtail 2008-09-07 15:24 发表评论
]]>
[zt]Cq行库概?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/08/31/60520.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Sun, 31 Aug 2008 12:59:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/08/31/60520.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/60520.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/08/31/60520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/60520.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/60520.html</trackback:ping><description><![CDATA[ 1)q行时库是   C   run-time   libraryQ是   C   而非   C++   语言世界的概?取这个名字就是因Z?  C   E序q行旉要这些库中的函数.   <br>    <br>  2)C   语言是所谓的“内?#8221;语言Q就其语a本n来说很小Q不多的关键字,E序程控制Q数据类型等Q;所以,C   语言内核开发出来之后,Dennis   Ritchie   ?  Brian   Kernighan   q   C   本n重写?  90%   以上?  UNIX   pȝ函数Qƈ且把其中最常用的部分独立出来,形成头文件和对应?  LIBRARYQC   run-time   library   是q样形成的?  <br>    <br>  3)随后Q随着   C   语言的流行,各个   C   ~译器的生?个体/团体都遵循老的传统Q在不同q_上都有相对应?  Standard   LibraryQ但大部分实现都是与各个q_有关的。由于各?  C   ~译器对   C   的支持和理解有很多分歧和微妙的差别,所以就有了   ANSI   CQANSI   C   Q主观意图上Q详l的规定?  C   语言各个要素的具体含义和~译器实现要求,引进了新的函数声明方式,同时订立?  Standard   Library   的标准Ş式。所以Cq行时库q译器生商提供。至于由其他厂商/个h/团体提供的头文g和库函数Q应当称为第三方   C   q行库(Third   party   C   run-time   librariesQ?  <br>    <br>  4)C   run-time   library里面含有初始化代码,q有错误处理代码(例如divide   by   zero处理)。你写的E序可以没有math库,E序照样q行Q只是不能处理复杂的数学q算Q不q如果没有了C   run-time库,main()׃会被调用Qexit()也不能被响应。因为C   run-time   library包含了CE序q行的最基本和最常用的函数?  <br>    <br>  5)C   C++   世界里,有另外一个概?Standard   C++   Library,它包括了上面所说的   C   run-time   library   ?  STL。包?  C   run-time   library   的原因很明显QC++   ?  C   的超集,没有理由再重新来一?  C++   run-time   library.   VC针对C++   加入的Standard   C++   Library主要包括QLIBCP.LIB,   LIBCPMT.LIB?  MSVCPRT.LIB   <br>    <br>  6)Windows环境下,VC提供?  C   run-time   library又分为动态运行时库和静态运行时库?  <br>  动态运行时库主要是DLL库文件msvcrt.dll(or   MSVCRTD.DLL   for   debug   build),对应的Import   library文g是MSVCRT.LIB(MSVCRTD.LIB   for   debug   build)   <br>  静态运行时?release?对应的主要文件是Q?  <br>  LIBC.LIB   (Single   thread   static   library,   retail   version)   <br>  LIBCMT.LIB   (Multithread   static   library,   retail   version)   <br>    <br>  msvcrt.dll提供几千个C函数Q即使是像printfq么低的函数都在msvcrt.dll里。其实你的程序运行时Q很大一部分旉时在q些q行库里q行。在你的E序(release?被编译时QVC会根据你的编译选项(单线E、多U程或DLL)自动相应的q行时库文g(libc.lib,libcmt.lib或Import   library   msvcrt.lib)链接q来?  <br>    <br>  ~译时到底哪个C   run-time   library联入你的E序取决于编译选项Q?  <br>  /MD,   /ML,   /MT,   /LD       (Use   Run-Time   Library)   <br>  你可以VC中通过以下Ҏ(gu)讄选择哪个C   run-time   library联入你的E序Q?  <br>  To   find   these   options   in   the   development   environment,   click   Settings   on   the   Project   menu.   Then   click   the   C/C++   tab,   and   click   Code   Generation   in   the   Category   box.   See   the   Use   Run-Time   Library   drop-down   box.   <br>    <br>  从程序可UL性考虑,如果两函数都可完成一U功能,选运行时库函数好,因ؓ各个   C   ~译器的生商对标准C   Run-time   library提供了统一的支?   <img src ="http://m.shnenglu.com/szhoftuncun/aggbug/60520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-08-31 20:59 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/08/31/60520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何自己写Win32控ghttp://m.shnenglu.com/szhoftuncun/archive/2008/08/20/59470.htmlfoxtailfoxtailWed, 20 Aug 2008 14:06:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/08/20/59470.htmlhttp://m.shnenglu.com/szhoftuncun/comments/59470.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/08/20/59470.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/59470.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/59470.html最早时候就曄哪里看到q说所有控仉是窗口(windowQ,更有甚者说都是对象Q这个就不扯了。自己做好的控g是做?/span>Libq是Dll那是后话Q?/span>MFC我是不熟(zhn)了Q?/span>Win32q是看了几天的。大致把制作的整个流E简要的记录一下?/span>

自己做的控g最主要的功能就是接受你发给他的命oQ也是要给外部调用的接口。控件有自己的消息处理函数比?/span>

LRESULT CALLBACK PETextViewWndProc(HWND hWnd,UINT Message,WPARAM wParam,LPARAM lParam)
{
    PETextView 
*View = (PETextView*)GetWindowLong(hWnd,0);

    
switch(Message)
    
{
    
case WM_NCCREATE:
        
if((View = new PETextView(hWnd)) == 0)
            
return false;

        SetWindowLong(hWnd,
0,(LONG)View);
        
return true;

    
case WM_NCDESTROY:
        
if(View)delete View;
        
return 0;

    
case WM_PAINT:
        
return View->OnPaint();

    
case WM_SIZE:
        
return View->OnSize(wParam, LOWORD(lParam), HIWORD(lParam));

    
case PEM_OPENFILE:
        
return View->OpenFile((TCHAR*)lParam);

    
case PEM_CLEAR:
        
return View->ClearFile();
    
default:
        
break;
    }


    
return DefWindowProc(hWnd,Message,wParam,lParam);
}


q里有两cL息,一cLpȝ定义的以WM开_一cL自己定义的,当然随便你自己定义啦。对应的消息看到是调用相应的函数完成的,q也是说控件的行ؓ可以另外编写逻辑部分Q然后提供接口给q里调用卛_?/span>

之所以说控g是H口是因Z有自qH口c,以及初始化函敎ͼ同时也有创徏的函数。窗口类的定义和注册也做成提供给外部的接口,在外部必要的时候调用。而控制控件是通过发送消息来实现的,Z更加好看Q可以定义一个宏Q比?/span>

#define PE_OpenFile(hWnd, Path)        SendMessage((hWnd), PEM_OPENFILE, 0, (LPARAM)(Path))

那么创徏H口和控件唯一不同的地方就是,内部的创建和销毁消息是WM_NCCREATE?/span>WM_NCDESTROYQ先不管q两个消息。我们看?/span>WM_NCCREATE之前有个GetWindowLongQ其内有?/span>SetWindowLong。这两个是关键的Q这样就讄了这个控件的属性,使其兌hQ第二个参数msdn上是没有说明讄?/span>0是什么意思的Q其实这两个函数的第二个参数讄0表示d的意思,W一个是d该控件的属性,然后W二个函数在增加W三个参数的属性的同时d赋予l这个控件?/span>

 

一切都OK了!那么控g创徏可在外部?/span>WM_CREATE之时调用Q当然也可以在用其功能前调用即可?/span>

 

一切提供给外部的调用都Port在一个头文g中,q样使用的时候包含这个头文g好了?/span>

接下来解释那两个消息Q这两个消息是因为我们创Z子窗口,也就是我们自q控g?/span>

q两个消息与WM_CREATE,WM_DESTROY之间的顺序关pLq样的,只看销毁吧?/span>

hwnd = parent, uMsg = WM_DESTROY
hwnd = child, uMsg = WM_DESTROY
hwnd = child, uMsg = WM_NCDESTROY
hwnd = parent, uMsg = WM_NCDESTROY

WM_DESTROY是通知子窗口销毁,然后子窗口通过接受WM_NCDESTROYq行销毁,q发送给父窗口,q行销毁?/span>

 

l节部分介绍的差不多QM思\是和创建窗口差不多Q但是要搞个头文Ӟ把一些个帔R和功能的函数另外一个窗口类的初始化和创建的接口搞进厅R?/span>



foxtail 2008-08-20 22:06 发表评论
]]>
俄罗斯方?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/08/06/58183.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Wed, 06 Aug 2008 14:14:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/08/06/58183.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/58183.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/08/06/58183.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/58183.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/58183.html</trackback:ping><description><![CDATA[     摘要: W一ơ写俄罗斯方块,完全是按照自qx做的。做完了很奇怪。估计是按照相对坐标来算Q好多的分支语句把自己都搞晕了。所以决定放弃了Q脓(chung)出来以祭奠。设计的草稿是这L 子记录状?盘Ҏ(gu)子状态进行判断和l制 主要: 界:每次左移或者右UL(在边界内则移动否则不动)OK 触底:每次下降时检OKQ也是在时钟记录一ơ时探测?消行:触底触发时检?旋{:...  <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/08/06/58183.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/58183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-08-06 22:14 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/08/06/58183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>推荐一个文本编辑器http://m.shnenglu.com/szhoftuncun/archive/2008/08/04/57923.htmlfoxtailfoxtailMon, 04 Aug 2008 00:13:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/08/04/57923.htmlhttp://m.shnenglu.com/szhoftuncun/comments/57923.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/08/04/57923.html#Feedback7http://m.shnenglu.com/szhoftuncun/comments/commentRss/57923.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/57923.html可以?a >q里下蝲

然而文本编辑器始终没有遇到一个简z的Q偶然机会看到这个还符合要求,叫E-texteditor

同样y_?zhn)。可惜不是免费的Q不qcrack倒是一搜一大堆?br>VistualStudio一装我的硬盘就几乎没空间了。这回可以用他来~辑?
~译器用mingwQ以前都是整个都下蝲下来Q这回就把必要的部分下蝲下来Q顺带make和gdb打了个包
q里可以下蝲。make和gdb手生的很Q记得一些如codeblocks他们会自动生成makefile文gQ不知道q个什么原理?

foxtail 2008-08-04 08:13 发表评论
]]>
[Z]Visual C++开发工具与调试技巧整?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/07/29/57460.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Tue, 29 Jul 2008 12:05:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/07/29/57460.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/57460.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/07/29/57460.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/57460.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/57460.html</trackback:ping><description><![CDATA[本文转自<a style="COLOR: #0000ff" target=_blank>Azure博客</a><br><br>自己L用VCq_来开发东西,但是有时候L样那L问题Q呵呵,L需要上|查资料来解?在这里把自己用到上网查的一些技巧摘录如?希望对大家有用,省去大家再去搜烦的烦恹{?br><br><strong>1.如何在Release状态下q行调试</strong><br>ProjectQ?gt;SettingQ?gt;ProjectSetting对话框,选择Release状态。C/C++标签中的Category选GeneralQOptimizations选Disable(Debug)QDebut info选Program Database。在Link标签中选中Generate debug info复选框?br><br>注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用Q而不查表Q但是这U状态下QuickWatch、调用队列跟t功能仍然有效,和Debug版一栗?br><br><strong>2. Release和Debug有什么不?/strong><br>Release版称为发行版QDebug版称试版?br>Debug中可以单步执行、跟t等功能Q但生成的可执行文g比较大,代码q行速度较慢。Release版运行速度较快Q可执行文g较小Q但在其~译条g下无法执行调试功能?br>Release的exe文g链接的是标准的MFC DLL(Use MFC in a shared or static dll)。这些DLL在安装Windows的时候,已经配置Q所以这些程序能够在没有安装Visual C++ 6.0的机器上q行。而Debug版本的exe链接了调试版本的MFC DLL文gQ在没有安装Visual C++6.0的机器上不能q行Q因为缺相应的DLLQ除非选择use static dll when link?br><br><strong>3. ASSERT和VERIFY有什么区?/strong><br>ASSERT里面的内容在Release版本中不~译QVERIFY里面的内容仍然翻译,但不再判断真假。所以后者更安全一炏V?br>例如ASSERT(file.Open(strFileName))?br>一旦到了Release版本中,q一行就忽略了,fileҎ(gu)׃Open()了,而且没有M出错的信息。如果用VERIFY()׃会有q个问题?br><br><strong>4.Workspace和Project之间是什么样的关p?/strong><br>每个Workspace可以包括几个projectQ但只有一个处于Active状态,各个project之间可以有依赖关p,在project的Setting..中可以设定,比如那个Active状态的project可以依赖于其他的提供其函数调用的静态库?br><br><strong>5. 如何在非MFCE序中用ClassWizard</strong><br>在工E目录下新徏一个空?RC文gQ然后加入到工程中就可以了?br><br><strong>6.如何讄断点</strong><br>按F9在当前光标处增加一个断点和取消一个断炏V?br>另外Q在~辑状态下Q按Ctrl+Bl合键,弹出断点讄对话框。然后单凅RCondition…】按钮弹|断Ҏ(gu)件的对话框进行设|?br><br><strong>7.在编辑状态下发现成员变量或函C能显C提C是如何打开昄功能</strong><br>q似乎是目前q个Visual C++ 6.0版本的一个bugQ可按如下步骤其正常,如再出现Q可如法炮制Q?br>(1)关闭Project<br>(2)删除“工程?ncb”文g<br>(3)重新打开工程<br><br><strong>8.如何一个通过ClassWizard生成的类d删除</strong><br>首先在工作区的FileView中选中该类?h?cpp文gQ按delete删除Q然后在文g理器中这两个文g删除Q再q行ClassWizardQ这时出现是否移走该cȝ提示Q选择remove可以了?br><br><strong>9. 如何在workspace中消qcL出来</strong><br>打开该类对应的头文gQ然后将其类名随便改一下,q个时候工作区׃出现新的c,再将q个cL回原来的名字可以了?br><br><strong>10. 如何清除所有的断点</strong><br>菜单【Edit】->【Breakpoints…】,打开“Breakpoints”对话框,单击【Remove All】按钮即可。快捷键?#8220;Ctrl + Shift + F8”?br><br><strong>11. 如何再ClassWizard中选择未列出的信息</strong><br>打开“ClassWizard”对话框,然后切换?#8220;Class Info”面。改?#8220;Message filter”Q如选择“Window”Q?#8220;Message”面׃出现Window的信息?br><br><strong>12. 如何程序中的括h否匹?/strong><br>把光标移动到需要检的括号前面Q按快捷?#8220;Ctrl + ]”。如果括号匹配正,光标p到匹配的括号处,否则光标不移动,q且机箱喇叭q会发出一声警告?br><br><strong>13. 如何查看一个宏(或变量、函?的定?/strong><br>把光标移动到要查看的一个宏上,比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的相兌?Q如果没有徏立浏览文Ӟ׃出现提示对话框,按【确定】按钮,然后׃跛_该宏(或变量、函?定义的地斏V?br><br><strong>14. 如何dLib文g到当前工E?/strong><br>单击菜单【Project】->【Settings…】弹?#8220;Project Setting”对话框,切换?#8220;Link”标签,?#8220;Object/library modules”处输入Lib文g名称Q不同的Lib之间用空格格开?br><br><strong>15. 如何快速删除项目下的Debug文g夹中临时文g</strong><br>在工作区的FileView视图中选中对应的项目,单击右键弹出菜单Q选择【Clean(selection only)】菜单即可?br><br><strong>16. 如何快速生成一个现有工E除了工E名外完全相同的新工E?/strong><br>在新建工E的“New”对话框中选择“Custom Appwizard”,输入新工E的名字Q单凅ROK】按钮。出?#8220;Custom AppWizard”,输入新工E的名字Q单凅ROK】按钮。出?#8220;Custom AppWizardQStep 1 of 2”对话框,选择“An existing Project”,单击【Next】按钮。出?#8220;Custom AppWizardQStep 2 of 2”对话框,选择现有工程的工E文件名Q最后单凅RFinish】按钮。编译后q成一个与现有工程相同但可以重新取名的工程AppWizard?br>现在可以项用MFC AppWizard一Lq个定制的向对{如果不想用了,可以在Visual C++ 6.0安装目录下Common\MSDev98\Template目录中删除该Wizard对应?awx?pdb文g?br><br><strong>17. 如何解决Visual C++ 6.0不正连接的问题</strong><br>情景Q明明改动了一个文Ӟ却要把整个项目全部重新编译链接一ơ。刚刚链接好Q一q行Q又提示重新~译链接一ơ?br>q是因ؓ出现了未来文?修改旉和创建时间比pȝ旉?的缘故。可以这样处理:扑ֈ工程文g夹下的debug目录Q将创徏和修Ҏ(gu)间都比系l时间的文g全部删除Q然后再从新“Rebuild All”一ơ?br><br><strong>18. 引vLNK2001的常见错误都有哪?/strong><br>遇到的LNK2001错误主要为:unresolved external symbol “symbol”<br>如果链接E序不能在所有的库和目标文g内找到所引用的函数、变量或标签Q将产生此错误信息?br>一般来_发生错误的原因有两个Q一是所引用的函数、变量不存在Q拼写不正确或者用错误;其次可能使用了不同版本的链接库。以下是可能产生LNK2001错误的原因:<br><1>׃~码错误D的LNK2001错误<br>(1)不相匚w的程序代码或模块定义(.DEF)文gDLNK2001。例如,如果在C++源文件了内声明了一变量“var1”Q却试图在另一个文件内以变?#8220;var1”讉K改变量?br>(2)如果使用的内联函数是?cpp文g内定义的Q而不是在头文件内定义导致LNK2001错误?br>(3)调用函数时如果所用的参数cd和头函数声明时的cd不符会产生LNK2001错误?br>(4)试图从基cȝ构造函数或析构函数中调用虚拟函数时会DLNK2001错误?br>(5)要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。当试图从文件外部方位Q何没有在该文件内声明的静态变量时导致编译错误或LNK2001错误?br><2>׃~译和联机的讄而造成的LNK2001错误<br>(1)如果~译时用的?NOD(/NODERAULTLIB)选项Q程序所需要的q行库和MFC时将得到又编译器写入目标文g模块Q但除非在文件中明确包含q些库名Q否则这些库不会被链接进工程文g。这U情况下使用/NOD导致LNK2001错误<br>(2)如果没有为wWinMainCRTStartup讑֮E序入口Q在使用Unicode和MFC时将出现“unresolved external on _WinMain@16”的LNK2001错误信息?br>(3)使用/MD选项~译Ӟ既然所有的q行库都被保留在动态链接库之内Q源文g中对“func”的引用,在目标文仉卛_“__imp__func”的引用。如果试图用静态库LIBC.LIB或LIBCMT.LIBq行链接Q将在__imp__func上发生LNK2001错误。如果不使用/MD选项~译Q在使用MSVCxx.LIB链接时也会发生LNK2001错误?br>(4)使用/ML选项~译Ӟ如用LIBCMT.LIB链接会在_errno上发生LNK2001错误?br>(5)当编译调试版的应用程序时Q如果采用发行版模态库q行链接也会产生LNK2001错误Q同P使用调试版模态库链接发行版应用程序时也会产生相同的错误?br>(6)不同版本的库和编译器的؜合用也能生问题,因ؓ新版的库里可能包含早先的版本没有的符号和说明?br>(7)在不同的模块中用内联和非内联的~译选项能够DLNK2001错误。如果创建C++库时打开了函数内?/Ob1?Ob2)Q但是在描述该函数的相应头文仉却关闭了函数内联(没有inline关键?Q只是将得到错误信息。ؓ避免该问题的发生Q应该在相应的头文g中用inline关键字标志ؓ内联函数?br>(8)不正的/SUBSYSTEM或ENTRY讄也能DLNK2001错误?br><br><strong>19. 如何调试一个没有源码的exe文g调用的dll</strong><br>在Visual C++ 6.0中,q入“Project Setting”对话框然后选择Debug标签c通常Visual Studio默认“executable for debug session”为可执行文g名,但可以将他改成Q何你惌的程序。甚臛_以指定不同的工作目录以及传递参数到你的E序。这个技术常用来调试Dlls、名字空间扩展、COM对象和其他从某些EXE以及从第三方的EXE中调用的plug-inE序?br><br><strong>20. Visual C++ 6.0工程中的目文g都表CZ?/strong><br>.optQ工E关于开发环境的参数文g。如工具条位|等信息?br>.aps(AppStudio File)资源辅助文gQ二q制格式Q一般不用去它?br>.clwQClassWizard信息文gQ实际上是INI文g格式Q有兴趣可以研究一下。有时候ClassWizardZ问题Q手工修改CLW文g可以解决。如果此文g不存在的话,每次用ClassWizard的时候回提示是否重徏?br>.dsp(DevelopStudio Project)Q项目文Ӟ文本格式Q不q不熟?zhn)的不要手工修攏V?br>.dsw(DevelopStudio Workspace)Q是工作区文Ӟ其他特点?dsp差不多?br>.plgQ是~译信息文gQ编译时的error和warning信息文g(实际上是一个html文g)Q一般用处不大。在单击菜单【Tool】->【Option】弹出的对话框里面有个选项可以控制q个文g的生成?br>.hpj(Help Project)Q是生成帮助文g的工E,用microsoft Help Compiler可以处理?br>.mdp(Microsoft DevStudio Project)Q是旧版本的目文gQ如果要打开此文件的话,会提CZ是否转换成新?dsp格式?br>.bscQ是用于览目信息的,如果用Source Brower的话必Lq个文g。如果不用这个功能的话,可以在Project Options里面LGenerate Browse Info FileQ这样可以加快编译速度?br>.map是执行文件的映象信息记录文gQ除非对pȝ底层Q这个文件一般用不着?br>.pch(Pre-Compiled File)Q是与编译文Ӟ可以加快~译速度Q但是文仉常大?br>.pdb(Program Database)Q记录了E序有关的一些数据和调试信息Q在调试的时候可能有用?br>.expQ只有在~译DLL的时候才会生成,记录了DLL文g的一些信息,一般也没有用?br>.ncbQ无~译览文g(no compile browser)。当自动完成功能出问题时可以删除此文件。编译工E后会自动生成? <img src ="http://m.shnenglu.com/szhoftuncun/aggbug/57460.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-07-29 20:05 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/07/29/57460.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Scintilla 主要cd控g的消?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/07/17/56458.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Thu, 17 Jul 2008 10:43:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/07/17/56458.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/56458.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/07/17/56458.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/56458.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/56458.html</trackback:ping><description><![CDATA[  <p><span>主要c?/span></p> <table cellSpacing=0 cellPadding=0 border=1> <tbody> <tr> <td vAlign=top width=284> <p><span>CellBuffer</span></p> </td> <td vAlign=top width=284> <p><span>保存文本Q样式信息,恢复堆栈Q标{,代码叠vl构{信?/span></p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>ContractionState</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>Document</span></p> </td> <td vAlign=top width=284> <p><span>包含</span><span>CellBuffer</span><span>和一些高度抽象操作,理样式处理?/span></p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>Editor</span></p> </td> <td vAlign=top width=284> <p><span>使用</span><span>ContractionState, Indicator, LineMarker, Style, ViewStyle</span><span>来显C文?/span><span>KeyMap</span><span>?/span><span>ContractionState</span><span>同样在这里用?/span></p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>Indicator</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>LineMarker</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>Style</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>ViewStyle</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>KeyMap</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>ScintillaBase</span></p> </td> <td vAlign=top width=284> <p><span>Editor</span><span>的子c,增加了调用提C和自动完成{功能,使用c?/span><span>CallTip</span><span>?/span><span>AutoComplete</span></p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>CallTip</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> <tr> <td vAlign=top width=284> <p><span>AutoComplete</span></p> </td> <td vAlign=top width=284> <p> </p> </td> </tr> </tbody> </table> <p><span>Scintilla</span><span>文档的每个字W都紧跟兌的样式信息。一个字节的字符信息和一个字节的样式信息作ؓ一个单位。样式信息高</span><span>3</span><span>位是指示器,?/span><span>5</span><span>位是索引受烦引号索引一个存放样式的数组。这样就可以表示</span><span>32</span><span>U基样式Q几乎包含所有语a的样式。三个无xC器可以一ơ显C法错误,非法命名Q和~进错误。关于样式的位可以通过</span><span>SCI_SETSTYLEBITS</span><span>来改变最多其?/span><span>7</span><span>位,剩下的位用于指示器?/span></p> <p><span>字符位置信息?/span><span>0</span><span>开始计敎ͼ?/span><span>nLen-1</span><span>Q中文的字符是两个字Wؓ一个文字,q样计数有误了Q?/span><span>DBCS</span><span>Q?/span></p> <p> </p> <p><span>Scintilla</span><span>的消息都是以</span><span>SCI_GETxxx</span><span>或?/span><span>SCI_SETxxx</span><span>来命名的</span></p> <p><span><span>一Q?/span></span><span>文本取回与修?/span></p> <p><span>主要消息有:</span></p> <p> </p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Code_Closed_Image_185102 onclick="this.style.display='none'; Code_Closed_Text_185102.style.display='none'; Code_Open_Image_185102.style.display='inline'; Code_Open_Text_185102.style.display='inline';" height=16 src="http://m.shnenglu.com/Images/OutliningIndicators/ContractedBlock.gif" width=11 align=top><img id=Code_Open_Image_185102 style="DISPLAY: none" onclick="this.style.display='none'; Code_Open_Text_185102.style.display='none'; Code_Closed_Image_185102.style.display='inline'; Code_Closed_Text_185102.style.display='inline';" height=16 src="http://m.shnenglu.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width=11 align=top><span id=Code_Closed_Text_185102 style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"></span><span id=Code_Open_Text_185102 style="DISPLAY: none"><br><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">SCI_GETTEXT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> length, </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">text)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_SETTEXT(</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">unused</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">text)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_SETSAVEPOINT<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETLINE(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> line, </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">text)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_REPLACESEL(</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">unused</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">text)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_SETREADONLY(</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000"> readOnly)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETREADONLY<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETTEXTRANGE(</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">unused</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">, TextRange</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">tr)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_ALLOCATE(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> bytes, </span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">unused</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_ADDTEXT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> length, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_ADDSTYLEDTEXT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> length, cell </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_APPENDTEXT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> length, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_INSERTTEXT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> pos, </span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">text)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_CLEARALL<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_CLEARDOCUMENTSTYLE<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETCHARAT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> position)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETSTYLEAT(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> position)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETSTYLEDTEXT(</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">unused</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">, TextRange</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">tr)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_SETSTYLEBITS(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> bits)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_GETSTYLEBITS<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_TARGETASUTF8(</span><span style="COLOR: #000000"><</span><span style="COLOR: #000000">unused</span><span style="COLOR: #000000">></span><span style="COLOR: #000000">, </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_ENCODEDFROMUTF8(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">utf8,</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">encoded)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>SCI_SETLENGTHFORENCODE(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> bytes)<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span></span></div> <p> </p> <p><span>1</span><span>Q?/span><span>SCI_GETTEXT(int length, char *text)</span></p> <p><span>此函数可以取得控件中的字W串存到一个缓冲区Q这样就可以保存文档了。流E是使用</span><code><span>SCI_GETLENGTH</span></code><code><span>获得字符串的长度然后Ҏ(gu)取得的长度申请一个缓冲区Q再利用该消息取得文本,然后可以保存文本了Q同旉要利?/span></code><code><span>SCI_SETSAVEPOINT</span></code><code><span>标记文本已保存了?/span></code><code></code></p> <p><code> </code></p> <p><code><span>做了例子果然是可以运行的Q不知道作者是如何制作q样一个控件的。我对他的内部运行机制很感兴,想仔l看一些具体的代码Q而不是仅仅用它。另外发?/span></code><code><span>API</span></code><code><span>使用的字W是宽字W,q一点很令h讨厌?br><br>另外获取处理函数的过E用了上ơ写的typedef的用法,改一下看上去清晰多?br></p> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">typedef </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">EditorSendFun)(</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> ptr;<br><img src="http://m.shnenglu.com/Images/OutliningIndicators/None.gif" align=top>EditorSendFun editsendmessage;</span></div> </span></code> <img src ="http://m.shnenglu.com/szhoftuncun/aggbug/56458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-07-17 18:43 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/07/17/56458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++中的强制cd转换[转]http://m.shnenglu.com/szhoftuncun/archive/2008/07/14/56129.htmlfoxtailfoxtailMon, 14 Jul 2008 13:32:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/07/14/56129.htmlhttp://m.shnenglu.com/szhoftuncun/comments/56129.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/07/14/56129.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/56129.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/56129.html标准c++中主要有四种强制转换cdq算W:     

const_castQ?/span>reinterpret_castQ?/span>static_castQ?/span>dynamic_cast{等?nbsp;  

1Q?/span>static_cast<T*>(a)   

地址a转换成类型TQT和a必须是指针、引用、算术类型或枚Dcd?nbsp;  

表达?/span>static_cast<T*>(a), a的D{换ؓ模板中指定的cdT。在q行时{换过E中Q不q行cd查来保转换的安全性?nbsp;  

例子Q?nbsp;  

class B  };   

class D : public B  };   

void f(B* pb, D* pd)   

{    

   D
* pd2 = static_cast<D*>(pb);        // 不安? pb可能只是B的指?nbsp;  

   B
* pb2 = static_cast<B*>(pd);        // 安全?nbsp;  
    
}
 

  

2Q?/span>dynamic_cast<T*>(a)   

完成cdơ结构中的提升。T必须是一个指针、引用或无类型的指针。a必须是决定一个指针或引用的表辑ּ?nbsp;  

表达?/span>dynamic_cast<T*>(a) aD{换ؓcd为T的对象指针。如果类型T不是a的某个基cdQ该操作返回一个空指针?nbsp;  

例子Q?nbsp;  

class A  };   

class B  };    

void f()   

{   

  A
* pa = new A;   

  B
* pb = new B;   

  
void* pv = dynamic_cast<A*>(pa);   

  
// pv 现在指向了一个类型ؓA的对?nbsp;  
   

  pv 
= dynamic_cast<B*>(pb);   

  
// pv 现在指向了一个类型ؓB的对?nbsp;  

}
  

 

3Q?/span>const_cast<T*>(a)   

Lcd中的帔RQ除?/span>const或不E_的变址敎ͼT和a必须是相同的cd?nbsp;  

表达?/span>const_cast<T*>(a)被用于从一个类中去除以下这些属性:constvolatile, ?nbsp;__unaligned?nbsp;  

例子Q?  

class A  };   

void f()   

{   

 
const A *pa = new A;//const对象   

 A 
*pb;//非const对象   

//pb = pa; // q里出错,不能const对象指针赋值给非const对象   

 pb 
= const_cast<A*>(pa); // 现在OK?nbsp;  

..   }
  

 

4Q?/span>reinterpret_cast<T*>(a)   

M指针都可以{换成其它cd的指针,T必须是一个指针、引用、算术类型、指向函数的指针或指向一个类成员的指针?nbsp;  

表达?/span>reinterpret_cast<T*>(a)能够用于诸如char* ?nbsp;int*Q或者One_class* ?nbsp;Unrelated_class*{类DL转换Q因此可能是不安全的?nbsp;  

例子Q?nbsp;  

 

class A  };   

class B  };   

void f()   

{   

  A
* pa = new A;   

  
void* pv = reinterpret_cast<A*>(pa);   

  
// pv 现在指向了一个类型ؓB的对象,q可能是不安全的   

     

}
  

 
本文转自http://www.libing.net.cn/read.php?520



foxtail 2008-07-14 21:32 发表评论
]]>
typedef用法结http://m.shnenglu.com/szhoftuncun/archive/2008/07/13/56051.htmlfoxtailfoxtailSun, 13 Jul 2008 14:33:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/07/13/56051.htmlhttp://m.shnenglu.com/szhoftuncun/comments/56051.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/07/13/56051.html#Feedback10http://m.shnenglu.com/szhoftuncun/comments/commentRss/56051.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/56051.html

Ҏ(gu)出错的常用用法,做了一些整理?br>
一Q?/span>
起别名的两种用法

1.       typedef (int *Q?nbsp;pInt;

2.       typedef   pInt (int *)

比如pInt a,b;

W一U表C: int*a;int*b;

W二U表C: int*a,b;

所以第一U更像一个类型,W二U更像宏?/span>

 

二.旧式代码中声明对?/span>

typedef struct tagPoint

{

   Int x;

   Int y;

}
POINT;

POINT a,b;

 

三.代码?/span>

为复杂的声明定义一个新的简单的别名

Ҏ(gu)Q?/span>在原来的声明里逐步用别名替换一部分复杂声明Q如此@环,把带变量名的部分留到最后替换,得到的就是原声明的最化版

typedef int (*PF) (const char *const char *);

q个声明引入?/span> PF cd作ؓ函数指针的同义字Q该函数有两?/span> const char * cd的参C及一?/span> int cd的返回倹{?/span>

 

如果要用下列Ş式的函数声明Q那么上q这?/span> typedef 是不可或~的Q?/p>

PF Register(PF pf);

Register() 的参数是一?/span> PF cd的回调函?/span>Q返回某个函数的地址Q其|名与先前注册的名字相同。如果不?/span> typedefQ那么代码是q样的:

int (*Register (int (*pf)(const char *const char *)))(const char *const char *); 

 

 



foxtail 2008-07-13 22:33 发表评论
]]>
如何使用Scintilla~辑控ghttp://m.shnenglu.com/szhoftuncun/archive/2008/07/13/56049.htmlfoxtailfoxtailSun, 13 Jul 2008 13:07:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/07/13/56049.htmlhttp://m.shnenglu.com/szhoftuncun/comments/56049.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/07/13/56049.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/56049.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/56049.html一Q?/span>如何在窗口中建立Scintilla~辑控g

1.       载入动态链接库

1hmod = LoadLibrary("SciLexer.DLL");
2if (hmod==NULL)
3{
4       MessageBox(hwndParent,
5       "The Scintilla DLL could not be loaded.",
6       "Error loading Scintilla",
7        MB_OK | MB_ICONERROR);
8}

9

2.       创徏H口Q已l注册)
hwndScintilla = CreateWindowEx(0,
               
"Scintilla","", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN,
               
10,10,500,400,hwndParent,(HMENU)GuiID, hInstance,NULL);
二.如何控制H口cL?/span>

Ҏ(gu)一Q给控g发送消息和接受来自控g的响?/span>


SendMessage(hwndScintilla,sci_command,wparam,lparam);

Ҏ(gu)二:首先通过SCI_GETDIRECTFUNCTION ?/span> SCI_GETDIRECTPOINTER消息获取~辑控g回调函数的指针和W一个参敎ͼ接下来就可以直接使用~辑控g的消息处理函C?/span>

int (*fn)(void*,int,int,int);
void * ptr;
fn 
= (int (__cdecl *)(void *,int,int,int))SendMessage(hwndScintilla,SCI_GETDIRECTFUNCTION,0,0);
ptr 
= (void *)SendMessage(hwndScintilla,SCI_GETDIRECTPOINTER,0,0);
然后使用该回调函敎ͼ

fn(ptr,sci_command,wparam,lparam);
三.如何接受响应
只要在父H口消息处理函数中对WM_NOTIFY消息做相应处?/pre>

NMHDR *lpnmhdr;
[]
case WM_NOTIFY:
lpnmhdr 
= (LPNMHDR) lParam;
if(lpnmhdr->hwndFrom==hwndScintilla)
{
     
switch(lpnmhdr->code)
{
     
case SCN_CHARADDED:
       […]
        
break;
}
}

        
break;

整个q程没有M问题Q做好后是这个样子的Download?br>此时你会发现该控件你没有发送Q何消息就已经具备了一定的功能Q有redo undo操作Q还有复刉贴?/span>


foxtail 2008-07-13 21:07 发表评论
]]>q期学习计划http://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53271.htmlfoxtailfoxtailSat, 14 Jun 2008 12:05:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53271.htmlhttp://m.shnenglu.com/szhoftuncun/comments/53271.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53271.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/53271.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/53271.htmlC++E序设计语言   l常看看思考思考习题认真对待?br>法D                需要琢,更需要创造性的应用?br>
一些需要玩玩的程?br>单文本编辑器     先把界面搞出来再实现功能
计算?br>


foxtail 2008-06-14 20:05 发表评论
]]>
C++之父表达式计例?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53186.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Fri, 13 Jun 2008 16:24:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53186.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/53186.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53186.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/53186.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/53186.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53186.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/53186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-06-14 00:24 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/06/14/53186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【疑惑】小波变换的一点瑕?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/05/18/50220.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Sat, 17 May 2008 17:30:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/05/18/50220.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/50220.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/05/18/50220.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/50220.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/50220.html</trackback:ping><description><![CDATA[<br> <div style="TEXT-ALIGN: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/szhoftuncun/ying1.jpg"><br>?<br></div> <br> <div style="TEXT-ALIGN: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/szhoftuncun/a1.jpg"><br>?.1<br></div> <br> <div style="TEXT-ALIGN: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/szhoftuncun/a2.jpg"><br>?.2<br></div> <br> <div style="TEXT-ALIGN: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/szhoftuncun/b1.jpg"><br>?.1<br></div> <br> <div style="TEXT-ALIGN: center"><br> <div style="TEXT-ALIGN: left"> <div style="TEXT-ALIGN: center"><img alt="" src="http://m.shnenglu.com/images/cppblog_com/szhoftuncun/b2.jpg"><br>?.2<br></div> <br><br><br>?是原图,l过一ơ小波变换后变成?.1Q逆变换回来后是图1.2<br>看图1.2发现有些像素与原图不?br>然后对图1.2l过一ơ小波变换变成图2.1Q逆变换回来时?.2<br>?.2与原囑֍分相?br><br>法q没有不?br>Z么会有这L现象Q?br>大家帮帮我哈?br><br>psQ小波变换是有损?br><br></div> </div> <img src ="http://m.shnenglu.com/szhoftuncun/aggbug/50220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-05-18 01:30 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/05/18/50220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】构造可配置词法分析器【正文六&七?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47948.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Wed, 23 Apr 2008 12:26:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47948.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/47948.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47948.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/47948.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/47948.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47948.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/47948.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-04-23 20:26 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47948.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】构造可配置词法分析器【正文五?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47943.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Wed, 23 Apr 2008 11:50:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47943.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/47943.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47943.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/47943.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/47943.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47943.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/47943.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-04-23 19:50 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47943.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】构造可配置词法分析器【正文四?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47939.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Wed, 23 Apr 2008 10:34:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47939.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/47939.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47939.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/47939.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/47939.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47939.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/47939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-04-23 18:34 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】构造可配置词法分析器【正文三?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47937.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Wed, 23 Apr 2008 10:11:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47937.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/47937.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/47937.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/47937.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47937.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/47937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-04-23 18:11 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/04/23/47937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】构造可配置词法分析器【正文二?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47815.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Tue, 22 Apr 2008 06:26:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47815.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/47815.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47815.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/47815.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/47815.html</trackback:ping><description><![CDATA[     摘要:   <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47815.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/47815.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-04-22 14:26 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47815.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【{】构造可配置词法分析器【正文一】陈梓瀚同学著http://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47779.htmlfoxtailfoxtailMon, 21 Apr 2008 16:19:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47779.htmlhttp://m.shnenglu.com/szhoftuncun/comments/47779.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/04/22/47779.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/47779.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/47779.html阅读全文

foxtail 2008-04-22 00:19 发表评论
]]>
初识LSB信息隐藏法http://m.shnenglu.com/szhoftuncun/archive/2008/03/15/44559.htmlfoxtailfoxtailSat, 15 Mar 2008 05:29:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/03/15/44559.htmlhttp://m.shnenglu.com/szhoftuncun/comments/44559.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/03/15/44559.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/44559.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/44559.html阅读全文

foxtail 2008-03-15 13:29 发表评论
]]>
windowsE序设计Q滚动条Q?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/01/22/41675.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Tue, 22 Jan 2008 14:33:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/01/22/41675.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/41675.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/01/22/41675.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/41675.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/41675.html</trackback:ping><description><![CDATA[     摘要: ׃屏幕不够昄Q滚动条成ؓ必备品。我们也习以为常了,如果没有滚动条,我们的电(sh)脑生zd没那么轻松了^_^。要d滚动条,我们必须知道客户区的信息Q客户区是不断变化的Q但是变化是就有WM_SIZE消息Q此时的lparam的高字节保存高度Q低字节保存宽度。获取办法如? caseWM_SIZE: &nb...  <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/01/22/41675.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/41675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-01-22 22:33 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/01/22/41675.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows~程(输出文字)http://m.shnenglu.com/szhoftuncun/archive/2008/01/21/41565.htmlfoxtailfoxtailMon, 21 Jan 2008 07:50:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/01/21/41565.htmlhttp://m.shnenglu.com/szhoftuncun/comments/41565.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/01/21/41565.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/41565.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/41565.html阅读全文

foxtail 2008-01-21 15:50 发表评论
]]>
windows~程Q窗口与消息Q?/title><link>http://m.shnenglu.com/szhoftuncun/archive/2008/01/19/41479.html</link><dc:creator>foxtail</dc:creator><author>foxtail</author><pubDate>Sat, 19 Jan 2008 12:03:00 GMT</pubDate><guid>http://m.shnenglu.com/szhoftuncun/archive/2008/01/19/41479.html</guid><wfw:comment>http://m.shnenglu.com/szhoftuncun/comments/41479.html</wfw:comment><comments>http://m.shnenglu.com/szhoftuncun/archive/2008/01/19/41479.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/szhoftuncun/comments/commentRss/41479.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/szhoftuncun/services/trackbacks/41479.html</trackback:ping><description><![CDATA[     摘要: H口是屏q上的矩形区域,消息H口功能有限Q因为我们不能添加四个以上的按钮以及菜单{,而且d的按钮必Lwindows提供的按钮,不能自定义。所以我们有必要自己创徏一个多功能可自定义的窗口?自己的窗?创徏H口最重要的函数是CreateWindowQ它可以创徏重叠式窗口,弹出式窗口,子窗口等。而且可以自定义各U功能? ...  <a href='http://m.shnenglu.com/szhoftuncun/archive/2008/01/19/41479.html'>阅读全文</a><img src ="http://m.shnenglu.com/szhoftuncun/aggbug/41479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/szhoftuncun/" target="_blank">foxtail</a> 2008-01-19 20:03 <a href="http://m.shnenglu.com/szhoftuncun/archive/2008/01/19/41479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windowsE序设计(开?http://m.shnenglu.com/szhoftuncun/archive/2008/01/18/41443.htmlfoxtailfoxtailFri, 18 Jan 2008 14:05:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/01/18/41443.htmlhttp://m.shnenglu.com/szhoftuncun/comments/41443.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/01/18/41443.html#Feedback3http://m.shnenglu.com/szhoftuncun/comments/commentRss/41443.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/41443.html阅读全文

foxtail 2008-01-18 22:05 发表评论
]]>
关于内存模式[节选]http://m.shnenglu.com/szhoftuncun/archive/2008/01/01/40195.htmlfoxtailfoxtailTue, 01 Jan 2008 13:18:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2008/01/01/40195.htmlhttp://m.shnenglu.com/szhoftuncun/comments/40195.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2008/01/01/40195.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/40195.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/40195.html阅读全文

foxtail 2008-01-01 21:18 发表评论
]]>
关系闭包q算http://m.shnenglu.com/szhoftuncun/archive/2007/11/12/36442.htmlfoxtailfoxtailMon, 12 Nov 2007 06:25:00 GMThttp://m.shnenglu.com/szhoftuncun/archive/2007/11/12/36442.htmlhttp://m.shnenglu.com/szhoftuncun/comments/36442.htmlhttp://m.shnenglu.com/szhoftuncun/archive/2007/11/12/36442.html#Feedback0http://m.shnenglu.com/szhoftuncun/comments/commentRss/36442.htmlhttp://m.shnenglu.com/szhoftuncun/services/trackbacks/36442.html阅读全文

foxtail 2007-11-12 14:25 发表评论
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              ŷһ| þþƷ| ŷƷž| þþþþ97| þþþþҹƷƷ| ѶƵպ| ŷ13d| Ʒ߹ۿ| ҹҹav˾þ| žž91| þòӰ| պƵ߹ۿһ| һһþۺϺݺϾӰҵ| ŷҹ| ҹҹavһ | þþþ߹ۿ| þó97Ļ| þþ˳ӰƬһۿ | һ| ޹һaëƬ| 91þҹɫƷվ| þŮͬοһ| þþþþþþþþþþ9999| ˾þ| һɫ| þþþۺ| ŷxxxx137| 뾫Ʒһav| ɫƷ| պҹ| ŷһþþ| av˹| ŷ| ݺady޾Ʒ| ŷһߵӰ| þþžƵ| 91þþƷŮ߳| ëƬ| Բ2019²| Ƶѡ| պ| ŷɻƵ| һ崿| ŷһƬ߲| һ ߹ۿ| 99ѾƷ߹ۿ| ŷһ| һ| ޹ŷƷ| þɫav| ŷ߹ۿ| ޹ۿ| ޴av| ŷлshe2ŷ| һ| Ƶһ| ŷvaŷva㽶| ³ʦһ| þþþžžž| þҾƷ| ˳߹ۿ| ŷһ| 99ֻоþþƷƵ| һۿ| ޹ڸƵ| ŷһ6969| պƵѹۿƵ | Ʒһ| ŮƵaƬŷ| ŷպѹۿһ| þþþۺ| ŷձĻ| þƵƵ| ƷŮxx| ޾ƷŮþþþ| ˾Ʒ| ŮվŷƷ| ŷ߹ۿƵ| ŷպxxxxx| ޾ƷƵ߹ۿվ| ŷղ| þù鶹91| þþ91Ʒ| һ߹ۿ | ƷҹСƵ| һһþaþþƷţţӰ| ޾Ʒһ߹ۿ| Ұŷͽxxxx| þۺϾþڹ| ɫ˾Ʒվ| ѾþþһƷþ| ߹ۿ| ƷձƷ| þþƷһ | ŷպһѿ| þۺͼƬ| Ůþ| þӰԺҹ| һ| þþƷ޹99| ޼Ƶ| ŷպƵ| ŷߴ| ޹һaëƬ| 99˾þþƷӰԺ| ŷպۺϾƷ| þ| ҹҹˬ99þùۺϾƷŮ| ŷ޵ӰԺ߲| ŷһ| պƵ| ޾ƷƵ߹ۿվ| þƵ| þþƷַ| ŷպƵ| ҹѵӰһ߹ۿ| һ˾Ʒ| ޵Ӱѹۿ| լ66һ | ŷպ| ŷxxxxx| ŷƷþþþþþѹۿ| þwww_ƬѲ| СƵ| Ƶ| ˵| avӰ| ŷjizz19ŷ| Ʒרh߹ۿ| ߾ƷƷ884a| ŷɫƷ߹ۿƵ| ŷһþþ| ߹ۿ| Ʒһü٤| ޸av| þûɫ2Ӱ| ޾ƷԴ| þ| Ƶŷһ| ŷ޾Ʒһ| ŷۺһ| ҹҹһ| ŷӰѹۿȫ| ҹѸƵ| þùƷ| þþƷ30| պƵƷ| ˳վ߹ۿ| ŷƵһ߹ۿ | ޵һ| þþþŷƷ| ޹ŷۺһ| ޹ŷպƷ| 鶹ƷƵ߹ۿƵ| þþһ| ŷvaӰԺ| ëƬƵ| ŷ| ŷ12| ŷ999| ŷձ| þþƷҳ| ŷ߹ۿ| ŷ߶Ƶ| 鶹ѾƷƵ| ŷƷ߹ۿҹӰ| 99| þѻɫ| þѹۿ| ɫ߹ۿ| þѸƵ| һɫþۺ޾Ʒ| þþ999| þþþþŷ| Ʒ66mio| ޹ŷһþ | ޾ѡƵѿ| Ʒþþþþһ| ŷ͵ҹƵ| ŷպۺ| ޾Ʒһӣ| պƵѹۿ| ŷmvպmvվapp| þۺϺݺۺϾþü| ŷ޾Ʒ˾þ| ŷƵ߿| ۺ޾Ʒ| 99Ƶ߾ƷԲѹۿ | ԲƷƵ߿һj8| ˳һ| ޹ŷպƷ| ҾƷþþþþþӰԺ| պav| ֲav| һõþۺĻ| 鶹СƵ| ޸ëƬ| һav| ŷպۺ| þƵ|