合計 昨日 今日

アバター
Ciel
 
記事: 252
登録日時: 2010年10月16日(土) 20:26
日記: 日記を見る (4)
日記
- 1月 2011
掲示板作ってみました (2)
   2011年1月26日(水) 19:31

+ 12月 2010
+ 10月 2010
カテゴリー
カテゴリに指定された日記はありません
フィード

掲示板作ってみました

パーマリンクby Ciel on 2011年1月26日(水) 19:31

最近、C言語から離れて、PHPとJavaScriptを勉強してました。

自分のHPは前に作ってあったんですが、
もっと動的なページを作りたいなと思っていたので、HTML/CSSだけじゃ物足りませんでした。

そこで、勉強の為と思って、掲示板の一つでも作ってみようかなぁと思って、
PHPとJavaScriptを勉強して、頑張って作ってみました。

↓リンクはこちら
http://www17.atpages.jp/lciel/keijiban.php

現段階では本当に最低の機能しかない掲示板ですw
スレッド作りすぎたときのページ分けとか、編集とか削除の機能は一切なしw
まあ、まだまだ改良するつもりですがw

とりあえずアニメーションを意識したいと思ったので、JavaScriptのライブラリであるjQueryを使って
スレッド作成した時にアニメーションするように作ってみました。
何かこういう動的なページを作ってみたかったんですw

テスト中なので、気軽にテストしてみてください。
どういう不具合があったのかを報告してくれると嬉しいです。
現在は全てデータはテキストファイルに書き出していますw
SQLなどのデータベースは使っていないので、排他制御関連で不具合が発生する可能性が
非常に高いですw
一応Chrome,FIreFox,IE6~8では動作確認しています。
ですが、JavaScriptを有効にしないとまったく動きませんw
無効にした場合は何もできないのでご注意下さい。まあその辺は順次対応予定です。

もしこの掲示板をみて、JavaScript(jQuery)に興味を持った方がいれば、
↓のHTML/CSS/JavaScriptのコミュに気軽に参加して質問などしてください^^
viewforum.php?f=81

以上です。

コメント数: 2 閲覧数: 28634

リストビューの背景に画像を設定したい

パーマリンクby Ciel on 2010年12月17日(金) 20:42

1週間ぐらい前からリストビューの背景を画像に設定しようとしているが、上手くいかない。

リストビューを背景を画像にすること自体あまりないらしく、ググって見てもあまりサンプルがない。

下記のようにLVBKIMAGE構造体に値をセットし、ListVIew_SetBkImageマクロを使って、
設定するらしいのだが、FALSEが返ってきてしまいエラーになる。
下記のソースはビットマップのハンドルを使用して設定しているが、
直接ファイル名を指定して設定しようとしてもエラーが出てしまう。

ウィンドウハンドルやビットマップハンドルの値には問題がないことを確かめているのに
何故失敗するか分からない。
ListView_SetTextBkColorやTextColorの方はエラーが出ないんだけどなぁ。。

誰か分かる方、教えていただけると助かります。。。

コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
LVBKIMAGE lvbk;
 
HBITMAP hbmp=NULL;
 
hbmp=LoadBitmapA(hinst,"BACK2_BMP");
 
//リストビュー背景用構造体の初期化
memset(&lvbk,0,sizeof(lvbk));
lvbk.ulFlags=LVBKIF_SOURCE_HBITMAP | LVBKIF_STYLE_NORMAL;
lvbk.hbm=hbmp;
if(!ListView_SetBkImage(output_hwnd,&lvbk))
    MSG("背景画像設定みす");
 
ListView_SetTextColor(output_hwnd,RGB(255,255,255))
ListView_SetTextBkColor(output_hwnd,CLR_NONE);

コメント数: 5 閲覧数: 29180

なんちゃってタスクシステム

パーマリンクby Ciel on 2010年10月17日(日) 12:31

2週間ぐらい前に考えたタスクシステムです。
コード[C++]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#ifndef TASK_H
#define TASK_H
 
#include "Pch.h"
#include <map>
#include <vector>
 
#define PRIORITY_MAX 1.0f
 
template <typename T> class TASK{
 
public:
    typedef void (T::*T1)();
    typedef T* T2;
private:
    typedef std::multimap<float, T1> map;
    map data;
 
public:
    void SetList(T1 p,float pri);
    void DeleteList(T1 p);
    void TaskRun(T2 th);
};
 
template <typename T> void TASK<T>::SetList(T1 p,float pri)
{
    data.insert(std::make_pair(pri, p));
}
 
template <typename T> void TASK<T>::DeleteList(T1 p)
{
    map::iterator cur = data.begin(), end = data.end();
 
    while (cur != end)
        if (cur->second == p)
            //cur++だからこのときはまだ現在の値を消して終わったらcurが進む。
            data.erase(cur++);
        else
            ++cur;
}
 
template <typename T> void TASK<T>::TaskRun(T2 th)
{
   
    // 実行する関数内での登録削除を許可するため、先にコンテナに対する
    // 操作を全て済ませておきます。
    map::const_iterator cur=data.begin(),end=data.end();
 
    //退避用vector(関数ポインタ型のリスト)
    typedef std::vector<T1> vector;
    //リストの数分のvectorリストを確保
    vector heap(data.size());
 
    vector::iterator vcur=heap.begin();
    vector::const_iterator vend;
 
 
    for(;cur!=end;++cur){
        *vcur=cur->second;
        ++vcur;
    }
 
    vcur=heap.begin();
    vend=heap.end();
 
    //vectorに退避させた関数を実行。
    for(;vcur!=vend;++vcur){
        (th->*(*vcur))();
    }
 
    //STLコンテナなので解放処理とかは必要なし。
 
}
 
#endif


最初の頃に比べると大分すっきりしましたね。
最初はSTLを使わずに表現してたので、大分汚かったです。
が、助言を頂いてからはSTLを積極的に使っていってます。

シーケンス制御で悩んでいる方は、タスクシステムを勉強することをお勧めします。

本当にちょっと感動します。

管理が難しいけどね(ぼそっ)

コメント数: 5 閲覧数: 29245

少々重いようだが、大丈夫か?

パーマリンクby Ciel on 2010年10月16日(土) 21:48

少々重いようだが、大丈夫か?

コメント数: 9 閲覧数: 30135

オンラインデータ

登録ユーザー: なし