• <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>
            posts - 124,  comments - 29,  trackbacks - 0
            建議文件conn.inc
            1<%
            2set conn=server.createobject("adodb.connection")
            3provider="provider=microsoft.jet.oledb.4.0;"
            4DBPath ="data source=" & Server.MapPath("db.mdb")
            5conn.Open provider & DBPath
            6%>

            然后再每個頁前面加一句<!--#include file="conn.inc--">
            posted @ 2008-06-08 21:54 天書 閱讀(148) | 評論 (0)編輯 收藏
            Public Function SplitPageShow(ByRef rs)
                rs.PageSize 
            = 5 'pagesize屬性指定了每頁要顯示的記錄條數 
                Page = "1"
                Page 
            = CLng(Request("Page")) 'string型轉化為long型 
                If Page < 1 Then Page = 1 
                
            If Page > rs.PageCount Then Page = rs.PageCount 
                
            If Page <> 1 Then 
                   Response.Write 
            "<A HREF=Manage.asp?Page=1>第一頁</A>"
                   Response.Write 
            "<A HREF=Manage.asp?Page="& (Page-1& ">上一頁</A>" 
                
            End If 
                
            If Page <> rs.PageCount Then 
                   Response.Write 
            "<A HREF=Manage.asp?Page=" & (Page+1& ">下一頁</A>" 
                   Response.Write 
            "<A HREF=Manage.asp?Page="& rs.PageCount & ">最后一頁</A>" 
                
            End If 
                Response.write
            "頁碼:" & Page & "/" & rs.PageCount & "</font>" 
                
            '每一頁的顯示 
                
                
            '循環顯示每條記錄 
                rs.AbsolutePage = Page '把頁碼賦給absolutepage屬性從而知當前頁的首條記錄號 
                For iPage = 1 To rs.PageSize
                Response.WRITE 
            "<TR><TD bgcolor='#FFFFFF'>" & rs("ID"& "</TD>" 
                Response.WRITE 
            "<TD bgcolor='#FFFFFF'>" & rs("Title"& "</TD>" 
                Response.WRITE 
            "<TD bgcolor='#FFFFFF'>" & rs("CName"& "</TD>" 
                Response.WRITE 
            "<TD bgcolor='#FFFFFF'><a href='Update.asp?id="&rs("ID"&"'>修改</a></TD>" 
                Response.WRITE 
            "<TD bgcolor='#FFFFFF'><a href='DeleteProcess.asp?id="& rs("ID"&"'>刪除</a></TD></TR>"
                rs.MoveNext 
                
            If rs.EOF Then Exit For 
                
            Next 

            End Function
            posted @ 2008-06-08 21:44 天書 閱讀(143) | 評論 (0)編輯 收藏

            事件是最實用的委托應用程序之一。
            EventHandler這是一個事件委托,定義在system.EventHandler;
            btnOne.Click+=new EventHandler(Button_Click);
            btnTwo.Click+=new EventHandler(Button_Click);

            EventHandler委托沒有返回值,參數必需是object和EventArgs
            private void Button_Click(object sender,Eventargs e)
            {
            }
            上面定義的是一個接收器

            操作系統對每個輸入設備產生的操作,如按下MOUSE或鍵盤,就會發送一條消息,應用程序就得捕獲消息,并根據消息調用委托,通過委托調用相應的過程處理消息,沒有處理的消息再發送給操作系統,由操作系統處理。
            發送消息:按下MOUSE左鍵,首先由操作系統捕獲交給當前應用程序,再由當前應用程序交給當前窗口,如果當前窗口處理完就告訴應用程序由應用程序告訴操作系統。如果當前程序沒的處理也告訴操作系統,由它處理。如果當前窗口處理就根據當前窗口的情況及狀態通知委托,由委托調用用定義的處理過程,或者交回操作系統。

            posted @ 2008-05-20 12:53 天書 閱讀(207) | 評論 (0)編輯 收藏

            1:地板透明化注:透明物體最后畫出
                g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE );
                g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA );
                g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);

            2:畫出反射對象注:一份頂點數據通過矩陣變換畫出反射對象
             D3DXMATRIXA16 tmp;
             D3DXMatrixScaling(&tmp,1,-1,1);//通過放縮矩陣來實現倒影(或D3DXMatrixReflect(&tmp,&plane);)

            3:Stencil Buffer 模板緩存啟用Stencil Buffer保證轉到地板下面時看不到實際存在的反射物體以免漏餡
            鏡面既要最先畫又要最后畫,那么畫兩遍,最先畫時設置Aphha混合如下不改變后臺緩存只是在模板緩存中標記鏡面區域為1.
            最先畫地板時:
             //設置模板緩存
             g_pd3dDevice->SetRenderState(D3DRS_STENCILENABLE,true);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILFUNC,D3DCMP_ALWAYS);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILREF,0x1);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILMASK,0xffffffff);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILWRITEMASK,0xffffffff);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILZFAIL,D3DSTENCILOP_KEEP);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILFAIL,D3DSTENCILOP_KEEP);
             g_pd3dDevice->SetRenderState(D3DRS_STENCILPASS,D3DSTENCILOP_REPLACE);
             

             //繪制地板鏡面
             g_pd3dDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
             g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
             g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_ZERO);
             g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_ONE);
            繪制物體影像時啟用模板緩存并對其函數狀態進行設置:
                 g_pd3dDevice->SetRenderState(D3DRS_STENCILENABLE,true);
                 g_pd3dDevice->SetRenderState( D3DRS_STENCILFUNC,D3DCMP_EQUAL);
            最后在渲染時照常:
                g_pd3dDevice->SetStreamSource( 0, obj.g_pVB, 0, sizeof(CUSTOMVERTEX) );
                g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
                g_pd3dDevice->SetIndices( obj.g_pIB );
                g_pd3dDevice->SetTexture( 0, g_pTexture[obj.textureID] ); //設置紋理
                g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,0,obj.numOfVertex,0,obj.numOfFace);
            其中 g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,0,obj.numOfVertex,0,obj.numOfFace);這句話根據模板緩存的設置及開啟情況,寫入后臺緩沖區的同時寫入模板緩存。或在與模板緩存中數據比較后決定是否要往后臺緩沖區中寫。

            posted @ 2008-05-17 19:25 天書 閱讀(1984) | 評論 (3)編輯 收藏
            D3D中燈光的表現注意事項:
            1:一定要注意平面法向量的方向,進而再確定光源的位置。到底在平面的哪一側才能把平面照亮。
            2:因為點光源中只有少數幾條對平面其作用的光線,所以當平面離光源越遠(照亮范圍內)照亮的區域越大。
            3:光源照射后渲染三角形時當平面被分割的三角形越多,三角形頂點在光照范圍內時容易照亮。
            posted @ 2008-05-12 14:08 天書 閱讀(224) | 評論 (0)編輯 收藏
            漫反射顏色,紋理顏色,光照效果表現
                    光源所造成的明暗效果是表現在Diffuse上,也就是設定的Material上的。紋理要想表現出光照的明暗效果,就要啟用紋理階段混合了
             1   D3DMATERIAL9 mtrl;
             
            2   ZeroMemory( &mtrl, sizeof(D3DMATERIAL9) );
             
            3
             
            4   mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f;
             
            5   mtrl.Diffuse.g = mtrl.Ambient.g = 1.0f;
             
            6   mtrl.Diffuse.b = mtrl.Ambient.b = 1.0f;
             
            7   mtrl.Diffuse.a = mtrl.Ambient.a = 0.0f;
             
            8   g_pd3dDevice->SetMaterial( &mtrl );
             
            9   //漫反射顏色和紋理顏色疊加,光照效果折痕表現。光源效果只表現在diffuse上
            10   g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_MODULATE);
            11   g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
            12   g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_DIFFUSE);

                   
            posted @ 2008-04-30 11:00 天書 閱讀(315) | 評論 (0)編輯 收藏
             cctype開頭的c表示ctype程序是c++語言繼承自c語言的一部分。<cctype>頭文件為操作字符串提供了有用的函數
            isspace(c)        如果c是一個空白字符就返回真
            isalpha(c)         如果c是一個文字字符就返回真
            isdigit(c)           如果c是一個數字字符就返回真
            isalnum(c)         如果c是一個字母或數字就返回真
            ispunct(c)          如果c是一個標點符號就返回真
            isupper(c)         如果c是一個大寫字母就返回真
            islower(c)          如果c是一個小寫字母就返回真
            toupper(c)         產生c對應的大寫字母
            tolower(c)         產生c對應的小寫字母
            posted @ 2008-04-27 10:16 天書 閱讀(487) | 評論 (0)編輯 收藏

                        c++標準模板庫中表示大小的類型是一個無符號整數類型,這種類型不存放負值。 比如:vector<T> homework;  homework.size()-100會生成無符號類型的結果,也就是說它永遠不會比0小,即便homework.size()<100。
                        不管什么時候,如果一個表達式中同時出現普通的整數和無符號類型的整數,普通的整數就會被轉換成無符號類型。一個值得注意的地方是:vector<double>::size_type,與所有標準庫表示大小的類型相同,也是一個無符號整數類型。

            posted @ 2008-04-24 13:43 天書 閱讀(502) | 評論 (0)編輯 收藏

            vector<NODE>::iterator FindMin(vector<NODE> &vect)
            {
             vector<NODE>::iterator min = vect.begin();
             vector<NODE>::iterator iter = vect.begin();
             while(iter != vect.end())
             {
              if((*itor).Value < (*min).Value)
              {
               min = iter;
              }
              iter ++;
             }
             return min;
            }

                    iterator的概念源自于對遍歷一個線性容器工具的抽象,即如何你能訪問這個容器的某個元素。對于最簡單的數組,當然可以用數組的索引值,因為數組是連續存放在內存中的;但對于鏈表,就必須用指針。除此之外,還有還有很多種數據結構需要提供一個方便的工具來訪問其中的元素,方法有ID,關鍵字等等。為了統一所有的容器的這種工具的使用,一般提供一整套容器的開發者就會用一種方式來表示各種容器的訪問工具。例如C++   STL就是使用iterator。MFC自己的容器使用position。C#和java也有自己的方法,但方法是不變的。  
                    iterator的用法可以被統一,但不同的底層容器實現其iterator的原理是不一樣的。例如iterator++你可以理解為移動到容器的下一個元素,如果底層如果是數組,把索引值加一就行;如果底層是鏈表,就得執行類似于m_pCurrent   =   m_pCurrent->pNext;的操作。因此每種容器都有自己的iterator實現方法。
              C++   STL   iterator的常用方法有:  
              iterator++     移到下個元素  
              iterator--     移到上個元素  
              *iterator       訪問iterator所指元素的值]  
                <   >   ==   !=     iterator之間的比較,例如判斷哪個元素在前  
              iterator1   +   iterator2     iterator之間的加法運算,類似于指針加法

            posted @ 2008-04-23 13:27 天書 閱讀(5018) | 評論 (0)編輯 收藏
            C++ Lists(鏈表)

            Lists將元素按順序儲存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢.

            assign() 給list賦值
            back() 返回最后一個元素
            begin() 返回指向第一個元素的迭代器
            clear() 刪除所有元素
            empty() 如果list是空的則返回true
            end() 返回末尾的迭代器
            erase() 刪除一個元素
            front() 返回第一個元素
            get_allocator() 返回list的配置器
            insert() 插入一個元素到list中
            max_size() 返回list能容納的最大元素數量
            merge() 合并兩個list
            pop_back() 刪除最后一個元素
            pop_front() 刪除第一個元素
            push_back() 在list的末尾添加一個元素
            push_front() 在list的頭部添加一個元素
            rbegin() 返回指向第一個元素的逆向迭代器
            remove() 從list刪除元素
            remove_if() 按指定條件刪除元素
            rend() 指向list末尾的逆向迭代器
            resize() 改變list的大小
            reverse() 把list的元素倒轉
            size() 返回list中的元素個數
            sort() 給list排序
            splice() 合并兩個list
            swap() 交換兩個list
            unique() 刪除list中重復的元素
            posted @ 2008-04-23 13:02 天書 閱讀(447) | 評論 (0)編輯 收藏
            僅列出標題
            共13頁: First 5 6 7 8 9 10 11 12 13 

            <2008年9月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(5)

            隨筆檔案

            文章分類

            文章檔案

            好友的Bolg

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            日本三级久久网| 亚洲午夜久久久精品影院 | 日韩一区二区久久久久久| 国产精品美女久久久久AV福利| 99久久国产热无码精品免费久久久久| 2022年国产精品久久久久| 久久99精品国产麻豆不卡| 久久99久久99精品免视看动漫 | 久久永久免费人妻精品下载| 91精品久久久久久无码| 久久强奷乱码老熟女网站 | 久久99精品国产99久久6男男| 亚洲精品无码久久不卡| 久久精品国产精品亚洲| 伊人久久大香线蕉影院95| 亚洲精品乱码久久久久久久久久久久 | 日韩电影久久久被窝网| 日本久久久久久中文字幕| 四虎国产永久免费久久| 国产精品一区二区久久| 久久96国产精品久久久| 欧美久久综合性欧美| 久久精品国产91久久综合麻豆自制 | 久久久久九九精品影院| 久久精品国产99国产精偷| 久久免费视频一区| 国产精品99久久免费观看| a级成人毛片久久| 久久久久99精品成人片牛牛影视| 99热成人精品免费久久| 草草久久久无码国产专区| 久久久无码精品午夜| 久久久亚洲裙底偷窥综合| 久久精品成人免费观看97| 亚洲一区中文字幕久久| 国产欧美久久久精品| 久久中文字幕一区二区| 久久国产福利免费| 性做久久久久久免费观看| 久久久久久九九99精品| 久久精品国产亚洲Aⅴ香蕉|